gpt4 book ai didi

javascript - 使用 'for' 循环将数组中的每个元素乘以 2

转载 作者:行者123 更新时间:2023-11-28 17:10:14 25 4
gpt4 key购买 nike

我试图将数组中的每个元素加倍

let arr =  ['onions', 'tomatoes', 'etc'...';

使用 for 循环并不断收到 NaN 错误...我仍在学习,因此我们将不胜感激。

我尝试过for循环、.map()等方法,但就是看不出明显的问题...

let newIngr = tortSoup.filter(function(value, index, arr) {
if (value !== 'onion' && value !== 'red pepper') {
return value;
console.log(newIngr);
});
}

let myReci = [];

for(var i = 0; i < newIngr.length; i++) {
myReci[i] = newIngr[i] * 2;
}

console.log(myReci);

预期:每个数组元素乘以 2 并返回:

['onions', tomatoes', 'garlic', 'fontina']

会变成:

['onions', 'onions', 'tomoatoes', 'tomatoes', garlic, 'garlic', 'fontina', 'fontina']

最佳答案

这是一种使用 Array.reduce() 来做到这一点的方法。和扩展运算符:

const array = ['onions', 'tomatoes', 'garlic', 'fontina'];

const result = array.reduce((acc, x) => ([...acc, x, x]), []);

console.log(result)

Array.reduce 迭代输入数组并为每个元素调用回调。该回调有两个参数,第一个是上次迭代的输出,第二个是当前数组项。

此处的回调返回一个新数组,该数组由先前的回调结果(使用扩展运算符 ... 扩展至新数组中)和重复两次的当前项组成。

要开始归约过程,我们还需要一个初始值,这里我们给出一个空数组(reduce 的最后一个参数)。

以下是回调中 accx 值的详细说明,用于以下归约:

['a', 'b', 'c'].reduce((acc, x) => ([...acc, x, x]), []);
  1. acc = [], x = 'a' => 返回 ['a', 'a']
  2. acc = ['a', 'a'], x = 'b' => 返回 ['a', 'a', 'b', 'b']
  3. acc = ['a', 'a', 'b', 'b'], x = 'c' => 返回 ['a', 'a', 'b', 'b' , 'c', 'c']

关于javascript - 使用 'for' 循环将数组中的每个元素乘以 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54618688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com