【问题标题】:Remove array elements at different indexes移除不同索引处的数组元素
【发布时间】:2019-11-03 23:22:54
【问题描述】:

我有一个数组如下:

var box=[1,2,3,4,5] var sum=6;

在我的 if 条件下,我检查是否有可用于 sum 变量的组合,从数组中删除元素。例如,在上述情况下,它将从数组中删除6(如果可用),否则它将寻找组合,即(2,4),并从数组中删除它们。使用box.splice 方法我只能一步删除一个索引。考虑到这些元素是两个不相邻的不同索引处的元素,是否有任何其他方法可以在找到组合时从数组中一步删除两个元素,即(2,4)

【问题讨论】:

  • 没有。你可以做一个filter,但实际上splice 是唯一的就地删除方法。使用多个步骤并没有错,但请确保从最后开始,以免因删除前面的内容而改变索引。
  • 谢谢它从结束索引开始。

标签: javascript arrays array-splice


【解决方案1】:

您可以使用filter 方法来实现这一点。

例如,如果您知道值的索引,则可以执行以下操作:

box = box.filter((num, index) => index !== index1 && index !== index2);

或者更强大的解决方案:

const combination = [2, 4];

box = box.filter(num => {
    if (combination.includes(num)) {
        // remove first occurence of num from combination
        return false;
    }

    return true;
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多