js判断数组的值/对象数组的属性值是否相同every()、some()
·
一、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 比较两个数组是否相同
更多推荐
已为社区贡献7条内容
所有评论(0)