gpt4 book ai didi

javascript - 纯初学者 javascript - array 和 map

转载 作者:行者123 更新时间:2023-12-03 07:04:52 24 4
gpt4 key购买 nike

我是 javascript 的新手。我只是做了一个练习,我需要数组编号将每个索引添加到下一个索引。

结果应该是:

var result = [4,8,15,21,11];

我试过这样的事情。它适用于前 4 个索引,但最后给出 NaN,因为它没有要添加的下一个数字。

var numbers = [1, 3, 5, 10, 11];

var result = numbers.map((x, index) => x + numbers[index + 1])

console.log(result)

有没有更聪明的方法来做到这一点,我如何让索引 4 保持为 11?并请在我尝试学习时进行解释。

最佳答案

这是一种完全有效的方法。如果 index 超出,您可以利用 numbers[index] 将是 undefined (不是错误)这一事实来处理最后一个索引数组的末尾,undefined 是一个 falsy 值,所以你可以使用 || 0 使用 0 而不是 undefined 如果它在那里:

var result = numbers.map((x, index) =>  x + (numbers[index+1] || 0));

实例:

var numbers = [1, 3, 5, 10, 11];

var result = numbers.map((x, index) => x + (numbers[index + 1] || 0));

console.log(result);

|| 是逻辑 OR 运算符,但它在 JavaScript 中有点特殊:它计算其左侧操作数,如果该值为 truthy¹,则采用该值作为其结果;如果左边是falsy,则运算符计算右边的操作数并将该值作为结果。

在 ES2020+ 中你可以使用新的 nullish coalescing operator (??) 而不是 ||:

var result = numbers.map((x, index) =>  x + (numbers[index+1] ?? 0));

只有当 numbers[index]nullundefined 时才会使用 0,而不是如果这是任何虚假的值(value)。


¹“truthy”和“falsy”- 真值是当用作条件(例如,if (x)x || y);假值是评估为 false 的值。伪值是 0""NaNnullundefined、当然,false。所有其他值都是真实的。 (除了浏览器上的特殊情况:document.all 由于遗留原因是假的。)

关于javascript - 纯初学者 javascript - array 和 map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64122505/

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