[英]Loop through array of arrays and increment values into a new array
我正在努力循環遍歷 arrays 數組並返回一個帶有結果遞增值的新數組。
這是概念:
let array1 = [array1, array2];
let array2 = [4000,5000,3000,6000];
let array3 = [3000, 15000, 9000, 1000];
let i = 0;
let newArray = []
while (i < array1.length) {
// how do I get the combined value in a new array so that newArray[0] = 7000, newArray[1] = 20000 etc.
}
Array1 來自 API 並且是未知數量的 arrays。
這應該適用於任意數量的子 arrays。 這里假設array1
包含4個arrays。
let array2 = [4000, 5000, 3000, 6000] let array3 = [3000, 15000, 9000, 500] let array4 = [5000, 15000, 4000, 2000] let array5 = [6000, 25000, 5000, 8000] let array1 = [array2, array3, array4, array5] const result = array1.reduce((acc, curr) => { return acc.map((item, index) => item + curr[index]) }) console.log(result)
參考:
如果元素的數量是動態的,那么,
let array1 = [[4000, 5000, 3000, 6000], [3000, 15000, 9000, 1000, 2000, 3000], [1000], [3000, 15000, 9000, 1000, 2000, 3000, 1000, 10000]];
let index = 0;
let newArray = [];
let maxElements = Math.max(...array1.map(arr => arr.length));
let arrayLength = array1.length;
while (index < maxElements) {
let total = 0;
for (let arrayIndex = 0; arrayIndex < arrayLength; arrayIndex++) {
let element = array1[arrayIndex][index]
if (element) total += element;
}
newArray.push(total);
index++;
}
console.log(newArray)
您可能需要一個嵌套循環。 因此,基本上您將迭代包含 array2 和 array3 的 array1,然后在 newArray 中您將查看特定索引是否具有值。 如果是這樣,那么您將增加前一個的價值
let array2 = [4000, 5000, 3000, 6000]; let array3 = [3000, 15000, 9000, 1000]; let array1 = [array2, array3]; let i = 0; let newArray = [] while (i < array1.length) { for (let j = 0; j < array1[i].length; j++) { // if index of new array is unoccupied then set a value there if (;newArray[j]) { newArray[j] = array1[i][j] } else { // if index is occupied then add with previous value newArray[j] = newArray[j] + array1[i][j] } } i++. } console.log(newArray)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.