在 JavaScript 中使用三元运算符删除字符串

Remove a string using Ternary operation in JavaScript

我的控制台中有这样的东西:如何从我的输出中取出 [object Object]?

我想打印没有 [Object Object] 的输出。大概用的是三元运算吧?

data:[object Object]
  text:Data is supplied by Government
  link:https://en.wikipedia.org/

这是我的代码:

const GetData = (obj, step) => {

    let padSpace = ""

    for (let j=0; j < step; j++) {
      padSpace += ''
    }

    for (let k in obj) {
      console.log(padSpace + k + ':' + obj[k])
      if (typeof(obj[k]) === "object") {
        if (Array.isArray(obj[k])) {
          obj[k].forEach(element => {
              if (typeof(element === "object")) {
                GetData(element, step + 1);
              } else {
                console.log(padSpace + element)
              }
            }
          );
        } else {
          GetData(obj[k], step + 1);
        }
      } else {}
    }

我想要这样的东西:

我不是专家,但我会尽力提供帮助。

我想这个数据来自外部 API。正确的? 在我看来,这只是数据如何从服务器发回的问题。也许你只需要使用 JSON.stringfy 将对象转换为字符串。

如果能够访问从服务器发送的数据类型以对其进行操作,那就太好了。

希望它开始以某种方式帮助您...

干杯

以下测试将始终通过,因为 typeof truetypeof false 都是 "boolean",这是真实的。

if (typeof(element === "object")) {

尝试

if (typeof element === "object") {

我不知道你为什么要谈论三元运算。


要避免 [object Object] ,您可以移动现有的 console.log 并添加另一个,如图所示:

for (let prop in entity) {  
  if (typeof entity[prop] === "object") {
    console.log(padString + prop + ':');
    if (Array.isArray(entity[prop])) {
      entity[prop].forEach(element => {
        if (typeof element === "object") {
          formatData(element, level + 1);
        } else {
          console.log(padString + element)
        }
      });
    } else {
      formatData(entity[prop], level + 1);
    }
  } else {
    console.log(padString + prop + ':' + entity[prop])
  }
}