一、some():用于检测数组中的元素是否满足指定条件

some方法会依次执行数组的每个元素;

如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测如果没有满足条件的元素,则返回false

二、every():用于检测数组所有元素是否都符合指定条件

every和some正好相反:

如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。如果所有元素都满足条件,则返回 true。

1、判断数组:

var arr = [0,0,0,7];

//判断数组中的每一项是否都等于7

var everyResult = arr.every( item => item === 7 );

//判断数组中的一项是否等于7

var someResult = arr.some( item => item === 7 );

console.log(everyResult ); //结果:false

console.log(someResult );//结果: true

2、判断对象数组:

var arr = [

{ name: "苹果", price: 16 },

{ name: "橘子", price: 8 },

{ name: "香蕉", price: 4 },

{ name: "西瓜", price: 12 }

];

//判断数组中每一条数据的price是否都大于10

var everyResult = arr.every(function(item) {

return item.price > 10;

});

//判断数组中是否有一条数据的price大于10

var someResult = arr.some(function(item) {

return item.price > 10;

});

console.log(everyResult); //结果:false

console.log(someResult);//结果: true

以上判断条件是知道具体值的,但我想判断数组的值是否相同:

function isAllEqual(array) {

if (array.length > 0) {

return !array.some(function(value, index) {

return value !== array[0];

});

} else {

return true;

}

}

var arr = [0, 0 , 1 , 7];

isAllEqual(arr); //false

var arr = [0, 0 , 0 , 0];

isAllEqual(arr); //true

ES6中Set使用,判断数组里是否有相同的元素:https://blog.csdn.net/qq_40015157/article/details/117929652

我想判断每条数据里的属性值是否相同:

var arr = [

{ name: "苹果", price: 16 },

{ name: "橘子", price: 8 },

{ name: "香蕉", price: 4 },

{ name: "西瓜", price: 12 }

];

var list = [];

for(let i = 0;i< arr.length;i++) {

list.push(arr[i].price)

}

console.log(isAllEqual(list)); //false

var arr = [

{ name: "苹果", price: 16 },

{ name: "橘子", price: 16 },

{ name: "香蕉", price: 16 },

{ name: "西瓜", price: 16 }

];

//修改下数组 打印true

三、js JSON.stringify 比较两个对象数组是否相同

https://blog.csdn.net/qq_40015157/article/details/112790147

四、js 比较两个数组是否相同

https://blog.csdn.net/qq_40015157/article/details/110792580