我有2个这样的数组
arr = ["9138172", "9138214", "9138238"]
array = ["9138172", "9138238"]
如何从array
中删除arr
中的值?
我想获得
arr = ["9138214"]
也许我可以使用splice()
吗?
答案 0 :(得分:3)
您可以使用Array.forEach()
循环到项目数组,然后检查array
数组中是否存在每个项目。如果是这样,请使用splice()
。使用简单的功能和indexOf()
,因为它可以在旧的浏览器和IE中使用。
var arr = ["9138172", "9138214", "9138238"];
var array = ["9138172", "91382142"];
var i = arr.length;
while (i--) {
if (array.indexOf(arr[i]) !== -1) {
arr.splice(i, 1);
}
}
console.log(arr);
答案 1 :(得分:2)
您可以使用.filter()
。
这里是一个例子:
var arr = ["9138172", "9138214", "9138238"];
var array = ["9138172", "9138238"];
arr = arr.filter(e => !array.includes(e));
console.log(arr)
上面的代码仅过滤arr
数组,并仅保留array
中不存在的元素。我使用的.includes()
函数可在这些数组上使用,因为它们包含字符串,如果要处理对象,则需要找到其他方法来检查array
是否包含元素。>
答案 2 :(得分:0)
如果想破破烂烂,可以通过差分函数轻松完成此操作:
https://lodash.com/docs/4.17.10#difference
import {difference} from 'lodash';
arr = ["9138172", "9138214", "9138238"]
array = ["9138172", "9138238"]
console.log(difference(arr, array));