我们需要将数据从javascript object的左侧转移到array。初始化名为array的新userDataArray,并使用已添加到object的数字键从array调用object,将object中的所有数据添加到object中。

完成后,您应该已经从array中获得了与已写入的相同的数据,但是在中,而不必分别重新键入每个变量。

var userData = {
  1: true,
  2: true,
  3: "00QRA10",
  4: "slimer42",
  5: "FFASN9111871-USN16"
};

var userDataArray = [0,1,2,3,4];

最佳答案

不确定这是否是您想要的但是...



var userData = {
  1: true,
  2: true,
  3: "00QRA10",
  4: "slimer42",
  5: "FFASN9111871-USN16"
};

var outputArray = [];
for (var i = 0; i < Object.keys(userData).length; i++) {
  outputArray.push(userData[Object.keys(userData)[i]]);
}
console.log(outputArray);





分开:Object.keys(userData)是键名的列表(数组)。在这种情况下,它是1、2、3、4和5。outputArray.push()将一个元素添加到数组。 Object.keys(userData)[i]是我们所在的对象元素的名称,而userData[Object.keys(userData)[i]]只是我们所在的元素。因此,每次我们通过for循环时,都会向数组添加另一个元素。

您的示例使用1、2、3、4和5作为其元素名称,因此类似的方法可能会更好:



var userData = {
  1: true,
  2: true,
  3: "00QRA10",
  4: "slimer42",
  5: "FFASN9111871-USN16"
};

var outputArray = [];
for (var i = 0; i < Object.keys(userData).length; i++) {
  outputArray.push(userData[i+1]);
}
console.log(outputArray);





在此示例中,我们不是从键数组中删除元素名称,而是假定它是一个数字,并且这些数字是以1开头的序列。

您的解决方案不起作用的原因

是因为您没有从对象中调用数字。您将不得不使用userData.1userData.2userData.3等。

10-08 06:51
查看更多