我有一个很难描述的问题。这是两个数组的故事。
我有一个包含 50 个对象的数组。对于每个对象,我想调用其特定属性“IDnumber”
。
第二个数组有 5 个变量,其中包含所有上述 50 个对象的 "IDnumber"
属性,每个变量都有一组 10 个 ID 号:var1
是前 10 个对象的 ID 号,var2
是第二组的 ID 号,依此类推,直到第 50 个对象的 ID 号。
这就是事情变得困难的地方。 如果我想在第一个数组中添加一个新对象,以便有 51 个对象,那么我想用第六个变量更新第二个数组,该变量包含所有剩余对象的 ID 号(在本例中只是1)。我希望 array2 的长度取决于 array1 的长度。
var arr1 = [], obj = {"IDNumber": "1"};
//this is an example array, all objects have the same ID here, but not in my real array
for (var i = 0; i < 51; i++) {
arr1.push(obj);
}
var var1 = [arr1[0]["IDNumber"], arr1[1]["IDNumber"], arr1[2]["IDNumber"], arr1[3]["IDNumber"], arr1[4]["IDNumber"], arr1[5]["IDNumber"], arr1[6]["IDNumber"], arr1[7]["IDNumber"], arr1[8]["IDNumber"], arr1[9]["IDNumber"]];
//the other remaining possible variables.
var arr2 = [var1, ...]; //No clue as how to take that on
我该怎么做?如何创建一个使用更新的可能变量进行 self 更新的数组?每个变量最多只能有 10 个对象的 ID 号。
最佳答案
假设array1
包含您的对象数组。另一个是 array2
包含一个数组数组,每个子数组的长度为 10,如您所述
您可以将 array1
分成 10 个一组,然后像这样放入 array2
function slice10(arraysOfObject) {
var array2 = [];
var leftOver = arraysOfObject.length % 10;
var groupsOfTen = (arraysOfObject.length - leftOver)/10;
for (var i = 0; i < groupsOfTen; i++) {
array2.push([]);
for (var j = i*10; j < i*10 + 10; j++)
array2[i].push(arraysOfObject[j]["IDNumber"]);
}
//now take care of the leftover
if (leftOver > 0) {
array2.push([]);
for (var i = groupsOfTen*10; i < arraysOfObject.length; i++)
array2[array2.length-1].push(arraysOfObject[i]["IDNumber"]);
}
return array2;
}
关于javascript - 根据另一个数组中较新的对象更新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41371017/