Jquery 比较数组中的对象
我有一个对象数组Jquery 比较数组中的对象,jquery,javascript,Jquery,Javascript,我有一个对象数组 var array = [obj1, obj2, obj3, objN] 每个对象都有3个属性:键、名称、描述 如何比较这些对象是否相等?如果两个对象具有相同的键,则它们相等 但是,如果一个对象有4个,那么它们都必须具有相同的键才能相等。您可以使用以下方法来实现这一点: every()方法测试数组中的所有元素是否通过了所提供函数实现的测试 例如: var array = [obj1, obj2, obj3, objN]; var allTheSame = array.ever
var array = [obj1, obj2, obj3, objN]
每个对象都有3个属性:键、名称、描述
如何比较这些对象是否相等?如果两个对象具有相同的键,则它们相等
但是,如果一个对象有4个,那么它们都必须具有相同的键才能相等。您可以使用以下方法来实现这一点:
every()
方法测试数组中的所有元素是否通过了所提供函数实现的测试
例如:
var array = [obj1, obj2, obj3, objN];
var allTheSame = array.every(function(element){
return element.key === array[0].key;
});
请注意,这是IE9+。然而,对于旧版本的IE有一个很好的解决方案
如果您真的想使用for循环,可以这样做:
var array = [obj1, obj2, obj3, objN];
var allTheSame = array.length == 1;
for(var i = 1; i < array.length && (array.length > 1 && allTheSame); i++){
allTheSame = array[0].key == array[i].key;
}
您可以使用以下方法完成此操作:
every()
方法测试数组中的所有元素是否通过了所提供函数实现的测试
例如:
var array = [obj1, obj2, obj3, objN];
var allTheSame = array.every(function(element){
return element.key === array[0].key;
});
请注意,这是IE9+。然而,对于旧版本的IE有一个很好的解决方案
如果您真的想使用for循环,可以这样做:
var array = [obj1, obj2, obj3, objN];
var allTheSame = array.length == 1;
for(var i = 1; i < array.length && (array.length > 1 && allTheSame); i++){
allTheSame = array[0].key == array[i].key;
}
var数组=[obj1、obj2、obj3、objN];
对于(i=0,i
var数组=[obj1、obj2、obj3、objN];
对于(i=0,i
我想拿第一个对象和其他对象进行比较,但感觉不对。似乎你对这个概念有很好的理解,那么问题是什么?只需为您概述的过程编写代码……实际上,将所有对象与第一个对象进行比较是一种方法。我本以为使用第一个对象并与其他对象进行比较,但感觉不太对。似乎您很好地掌握了这个概念,那么问题是什么?只需为您概述的流程编写代码……实际上,将所有对象与第一个对象进行比较是一种方法。为什么要为循环嵌套?o。O@Cerbrus这样我就可以比较选择索引和数组中的其他对象。这样,我就不必每次转到下一个索引时都返回到第一个索引。它起作用了。复制代码并签入控制台。您只需在阵列中传递实际对象,这是大量冗余检查。如果将第一个对象与数组中的所有其他对象进行比较,并且它们都与第一个对象相同,那么为什么需要再次对第二个对象执行相同的检查?@Cerbrus我正在避免第二个for循环提到的问题,这样我就不必进行两次比较。试一下就行了,没问题。如果数组中的所有元素都必须相同,则只需在数组上迭代一次,即可将所有对象与第一个对象进行比较。为什么要为
循环嵌套?o。O@Cerbrus这样我就可以比较选择索引和数组中的其他对象。这样,我就不必每次转到下一个索引时都返回到第一个索引。它起作用了。复制代码并签入控制台。您只需在阵列中传递实际对象,这是大量冗余检查。如果将第一个对象与数组中的所有其他对象进行比较,并且它们都与第一个对象相同,那么为什么需要再次对第二个对象执行相同的检查?@Cerbrus我正在避免第二个for循环提到的问题,这样我就不必进行两次比较。试一下就行了,没问题。如果数组中的所有元素都必须相同,则只需在数组中迭代一次,即可将所有对象与第一个对象进行比较。非常感谢,@john:-)“但如果a假设有4个对象,则它们必须具有相同的键才能相等。”我想问题很清楚,@Zeshan。非常感谢,@john:-)“但是如果一个物体有4个,那么它们必须有相同的键才能相等。”我认为问题很清楚,@Zeshan。