比较jquery中的数组并返回不相同的值

compare arrays in jquery and return the values that are no the same

本文关键字:返回 jquery 数组 比较      更新时间:2023-09-26

我想比较jquery中的两个数组,并返回一个包含所有不匹配元素的新数组。如果我创建这样一个函数:

function (parent, child) {}

我应该比较childparent,并返回子元素中所有不匹配父元素的新数组。例如

parent = ['apple', 'banana'];
child = ['fruit'];

比较子和父,得到数组:['fruit']作为fruit不在父。我寻找方法做到这一点,看到了这个解决方案,但我不确定这是否是我想要的。

您可能需要查看Underscore.js (http://underscorejs.org/#difference),它有一个专门用于此的函数。它返回其他数组中不存在的数组值。

_.difference([1, 2, 3, 4, 5], [5, 2, 10]);
=> [1, 3, 4]

为了证明使用另一个库的合理性:您可能会在那里找到大量其他有用的实用程序;)

要小心,使用关键字'parent'可能会产生意想不到的副作用。在我使用的Chrome版本中,它似乎指的是windows。

香草JavaScript解决方案,快速和简单:

var findDifference = function (elder, sibling) {
  var difference = [];
  for(var i = 0; i < sibling.length; i++){
    if(elder.indexOf(sibling[i]) < 0){
      difference.push(sibling[i]);
    }
  }
  return difference;
};

var elder = ['apple', 'banana'];
var sibling = ['fruit'];
findDifference(elder, sibling); // => ['fruit']