开发者问题收集

JavaScript 将对象转换为数组

2018-04-27
83

我研究了大约一天,但没有任何收获。我试图访问对象属性,以便将其添加到 JavaScript 中的类型化类中。我该如何实现这一点?这是我收到的对象:

在此处输入图片说明

这是我的代码,导致以下错误:

Object.keys(selected).forEach(function (key) {
        console.log(selected[key]);
    });

错误:

ERROR TypeError: Cannot convert undefined or null to object

任何帮助都非常感激,因为我来这里是最后的手段。

selected 看起来像这样: 在此处输入图片说明

Object.keys(selected)... json 字符串中选择的内容:

{
 "selected": [
    {
      "Id": 4,
      "Type": 0,
      "Image": "",
      "Name": "TestName",
      "Roles": "TestRole",
      "Facility": "TestFacil"
    }
  ]
}
2个回答

选定的变量是一个数组,您可以尝试这个:

selected.forEach(
  item=>
    Object.keys(item).forEach(function (key) {
      console.log(item[key]);
    })
)

也可能是:

selected.selected.forEach(

在您的问题中,不清楚您正在记录的 json 字符串的值的名称是什么。

HMR
2018-04-27
let data = {
 "selected": [
    {
      "Id": 4,
      "Type": 0,
      "Image": "",
      "Name": "TestName",
      "Roles": "TestRole",
      "Facility": "TestFacil"
    }
  ]
}


let arr = [];
for (var key in data) {
  arr.push(data[key]);
}

console.log(arr)

或者,如果您想将整个对象转换为 数组数组 ,也可以使用它

let data = {
         "selected": [
            {
              "Id": 4,
              "Type": 0,
              "Image": "",
              "Name": "TestName",
              "Roles": "TestRole",
              "Facility": "TestFacil"
            }
          ]
        }


    var arr = [];
    var i =0;
    for( var key in data){
      var innerArr = [key];
      arr.push(innerArr)
      for(var values in data[key]){
       for(var keys in data[key][values]){
         var innerArr3 = [keys];
         innerArr.push(innerArr3)
         innerArr3.push(data[key][values][keys])
        }
      }
    }
     console.log(arr)
mooga
2018-04-27