我们需要将数据从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.1
,userData.2
,userData.3
等。