簡體   English   中英

遍歷 arrays 數組並將值遞增到新數組中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM