gpt4 book ai didi

Javascript按值从数组中删除数组元素

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

我有一个javascript数组,我想根据数组的值删除一个元素,这是我的数组,这是我尝试过但没有成功的方法。

array = []
array.push (["Mozilla","Firefox",1.10])
index = array.indexOf(["Mozilla","Firefox",1.10])
array.splice(index, 1)

但它不起作用,有什么想法吗?

最佳答案

您正在尝试比较数组,它们是对象并且具有唯一的地址。您的 index 变量是 -1

在控制台中尝试 ['Mozilla','Firefox',1.10] === ['Mozilla','Firefox',1.10] ,您会看到这一点,因为两个数组有相同的值,并不意味着它们是相同的数组。

您需要的是一种深度等于的比较方式,它检查数组中的每个值,以查看两个数组是否相似。

看看lodash的isEqual一个想法的函数。

这是一个简单的循环函数:

function deepIndex(array, comparison) {
var i, j;

main:
for (i = 0; i < array.length; i++) {
if (Array.isArray(array[i])) {
for (j = 0; j < array[i].length; j++) {
if (array[i][j] !== comparison[j]) {
continue main;
}
}
return i;
}
}
}

var arr = [];

arr.push('string', ['Mozilla','Firefox',1.10], 'thing');

var index = deepIndex(arr, ['Mozilla','Firefox',1.10])

console.log(index, arr);
arr.splice(index, 1);
console.log(arr);

关于Javascript按值从数组中删除数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31183078/

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