Javascript / jQuery:按值

时间:2017-08-22 08:14:44

标签: javascript jquery arrays

我有一个动态生成的多维数组,我想从中删除一个特定的值。

到目前为止,我有这段代码:

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。

感谢任何帮助。

3 个答案:

答案 0 :(得分:3)

如果您将elemvalue转换为字符串,那么您的代码就可以了。

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>