我有一个动态生成的多维数组,我想从中删除一个特定的值。
到目前为止,我有这段代码:
mainARR = [[1,2,3,4], [5,6,7,8]];
delARR = [1,2,3,4];
function removeByValue(array, value){
return array.filter(function(elem, _index){
return value != elem;
});
}
mainARR = removeByValue(mainARR, delARR);
console.log(JSON.stringify(mainARR));
我不知道要删除的值的索引。相反,我知道实际价值。当值是数组时,代码不起作用。当我想删除时,它可以完美地用于像[1,2,3,4]这样的简单数组,比方说,值为1。
感谢任何帮助。
答案 0 :(得分:3)
如果您将elem
和value
转换为字符串,那么您的代码就可以了。
function removeByValue(array, value) {
return array.filter(function(elem, _index) {
return value.toString() != elem.toString();
});
}
以下示例
mainARR = [
[1, 2, 3, 4],
[5, 6, 7, 8]
];
delARR = [1, 2, 3, 4];
function removeByValue(array, value) {
return array.filter(function(elem, _index) {
return value.toString() != elem.toString();
});
}
mainARR = removeByValue(mainARR, delARR);
console.log(JSON.stringify(mainARR));
答案 1 :(得分:1)
您必须比较数组中的每个元素。 示例解决方案:
mainARR = [[1,2,3,4], [5,6,7,8]];
delARR = [1,2,3,4];
function removeByValue(array, value){
return array.filter(function(elem, _index){
// Compares length and every element inside array
return !(elem.length==value.length && elem.every(function(v,i) { return v === value[i]}))
});
}
mainARR = removeByValue(mainARR, delARR);
console.log(JSON.stringify(mainARR));
这应该适用于已排序和未排序的数组。
答案 2 :(得分:1)
您可以过滤值,然后删除空数组。
<a href = ".\<something>.txt"> Download </a>