有没有办法在JavaScript中返回两个数组之间的差异?
例如:
var a1 = ['a', 'b'];
var a2 = ['a', 'b', 'c', 'd'];
// need ["c", "d"]
Run Code Online (Sandbox Code Playgroud)
任何建议都非常感谢.
我有一个目标数组["apple","banana","orange"],我想检查其他数组是否包含任何一个目标数组元素.
例如:
["apple","grape"] //returns true;
["apple","banana","pineapple"] //returns true;
["grape", "pineapple"] //returns false;
Run Code Online (Sandbox Code Playgroud)
我怎么能在JavaScript中做到这一点?
我正在寻找一种有效的方法来删除javascript数组中的所有元素,如果它们存在于另一个数组中.
// If I have this array:
var myArray = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
// and this one:
var toRemove = ['b', 'c', 'g'];
Run Code Online (Sandbox Code Playgroud)
我想对myArray进行操作以使其保持这种状态: ['a', 'd', 'e', 'f']
使用jQuery,我使用的是grep()和inArray(),效果很好:
myArray = $.grep(myArray, function(value) {
return $.inArray(value, toRemove) < 0;
});
Run Code Online (Sandbox Code Playgroud)
有没有一个纯粹的JavaScript方式来做到这一点没有循环和拼接?
让我们A和B两套.我正在寻找真正快速或优雅的方法来计算它们之间的集合差异(A - B或者A \B,取决于您的偏好).正如标题所说,这两个集合作为Javascript数组进行存储和操作.
笔记:
编辑:我注意到有关包含重复元素的集合的注释.当我说"集合"时,我指的是数学定义,这意味着(除其他外)它们不包含重复元素.
我是JavaScript编程的新手,我有两个具有以下结构的对象数组:
myFirstObjArray = [{foo: 1, bar: 1}, {foo: 3, bar: 3}, {foo: 4, bar: 5}];
mySecondObjArray = [{foo: 2}, {foo: 4}, {foo: 5}];
Run Code Online (Sandbox Code Playgroud)
我需要获得两个包含key值的独立数组foo,第一个包含第一个数组但不在第二个数组中的数组,基于key的值,foo第二个包含mySecondObjArray但不在myFirstObjArray.
有没有办法做到这一点没有
for(i=0;i<myFirstObjArray.length;i++)
for(j=0;j<mySecondObjArray .length;j++)
{...build first array here}
for(i=0;i<mySecondObjArray .length;i++)
for(j=0;j<myFirstObjArray.length;j++)
{...build second array here}
Run Code Online (Sandbox Code Playgroud)
?也许我的问题是一个我没找到的重复问题,所以请保持温和.
预期产量:
firstArray = [{foo: 1}, {foo: 3}];
secondArray = [{foo: 2}, {foo: 5}];
Run Code Online (Sandbox Code Playgroud)