将数据从Javascript对象传输到数组。我的阵列出了什么问题?

时间:2017-10-26 16:19:38

标签: javascript arrays

我们需要将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]; 中,而不必分别重新键入每个变量。

query = "SELECT "
        "a.Item1, a.Item2, a.Result1, a.Result2, b.skill "
        "FROM formulas AS a "
        "LEFT JOIN skills AS b "
        "ON (Id = %u) "
        "WHERE Type != 0 AND Result1 = %u OR Result2 = %u;";

3 个答案:

答案 0 :(得分:2)

您可以使用Object.values之类的新函数从object获取值,使用Object.keys从对象获取键。

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

var userDataArray = Object.values(userData)

答案 1 :(得分:0)

不确定这是不是你想要的......



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);
&#13;
&#13;
&#13;

将其分开: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作为其元素名称,因此这样的事情可能会更好:

&#13;
&#13;
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);
&#13;
&#13;
&#13;

在这个例子中,我们假设它是一个数字,并且数字是以1开头的序列,而不是从关键数组中取出元素名称。

您的解决方案无效的原因

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

答案 2 :(得分:0)

您可以遍历对象并使用键来获取值。

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

var userDataArray = [];

for (var key in userData) {
  userDataArray.push(userData[key])
}

console.log(userDataArray)
&#13;
&#13;
&#13;