gpt4 book ai didi

javascript - 如何在嵌套数组上使用 includes() 函数?

转载 作者:数据小太阳 更新时间:2023-10-29 06:14:48 25 4
gpt4 key购买 nike

我有一个这样的数组:

var arr = [];
arr = [['red', 685], ['green', 210], ['blue', 65]];

我还有两个变量:

var color  = 'blue';
var number = 21;

我要做的就是检查 arr 的每个嵌套数组的第一项,然后更新它的第二项或为其创建一个新数组。

这里是一些例子:

输入:

var color  = 'blue';
var number = 21;

预期输出:

arr = [['red', 685], ['green', 210], ['blue', 21]];

输入:

var color  = 'yellow';
var number = 245;

预期输出:

arr = [['red', 685], ['green', 210], ['blue', 21], ['yellow', 245]];

到目前为止,这是我尝试过的:

if ( !arr.includes(color) ) {
arr.push([color, number]);
} else {
arr[color] = time;
}

但是 !arr.includes(color) 条件是错误的。因为 arr 的每一项也是一个数组。无论如何,如何在嵌套数组的第一项上使用 includes() 函数?

最佳答案

您不能直接在嵌套数组上使用includes,但是,您可以使用find。在阵列上。

arr.find(el => el[0] === color)

这将返回在其他情况下找到的数组元素 undefined。返回值可用于更新数组中的第二个元素。

var arr = [
['red', 685],
['green', 210],
['blue', 65]
];
var color = 'blue';
var number = 21;


function upsert(array, color, number) {
var exists = arr.find(el => el[0] === color);

if (exists) {
exists[1] = number;
} else {
arr.push([color, number]);
}
}

upsert(arr, color, number);
console.log(arr);


var color = 'yellow';
var number = 245;
upsert(arr, color, number);
console.log(arr);

关于javascript - 如何在嵌套数组上使用 includes() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43512034/

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