gpt4 book ai didi

javascript - 如果列表中存在特定值,则从 Array 中删除数组

转载 作者:行者123 更新时间:2023-12-05 01:05:16 24 4
gpt4 key购买 nike

在 JavaScript 中相当新,如果 del_values 数组中列出了某些值,则只是尝试删除我的数据中的整个数组。

解决这个问题的最佳方法是什么?

data = 
[['true', 'visiting-today', 'DVM-Wiessman','J-001'],
['false', 'visiting-tommorrow', 'DVM-Stevens','K-001'],
['true', 'visiting-tommorrow', 'DVM-Stevens','Z-001'],
['false', 'visiting-tommorrow', 'DVM-Kon','J-001']]


var del_values = ['J-001','K-001'];

function remove_from_list(list,deleted_values) {
for( var i = 0; i < deleted_values.length; i++) {
result = list.filter(dat => !dat.includes(deleted_values[i]));
}
return result;
}

实际结果

data = 
[ [ 'true', 'visiting-today', 'DVM-Wiessman', 'J-001' ],
[ 'true', 'visiting-tommorrow', 'DVM-Stevens', 'Z-001' ],
[ 'false', 'visiting-tommorrow', 'DVM-Kon', 'J-001' ] ]

Desired Result -- 如果数据中包含 del_values

中列出的任何值,则删除数据中的整个数组
data = 
[[ 'true', 'visiting-tommorrow', 'DVM-Stevens', 'Z-001' ] ]

最佳答案

您可以在过滤器的回调中使用 Array.prototype.every:

const data = [
['true', 'visiting-today', 'DVM-Wiessman', 'J-001'],
['false', 'visiting-tommorrow', 'DVM-Stevens', 'K-001'],
['true', 'visiting-tommorrow', 'DVM-Stevens', 'Z-001'],
['false', 'visiting-tommorrow', 'DVM-Kon', 'J-001']
]

const del_values = ['J-001', 'K-001'];

function remove_from_list(list, deleted_values) {
return list.filter(arr => arr.every(el => !deleted_values.includes(el)))
}

console.log(remove_from_list(data, del_values))


function remove_from_list(list,deleted_values) {
for( var i = 0; i < deleted_values.length; i++) {
result = list.filter(dat => !dat.includes(deleted_value[i]));
}
return result;
}

您的代码中的主要问题是在每次迭代时 list 正在被过滤,因此之前过滤的数组被重新分配。

关于javascript - 如果列表中存在特定值,则从 Array 中删除数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70750719/

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