一、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

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐