刚玩js,萌新一枚,请多多指教。
数据是这样的
let mobilePhoneList = [
{
number: '123',
}, {
number: '123456',
}, {
number: '123456789',
},
],
这个数组里可能会有很多数据。
我想实现的是,判断每个对象里number属性的值,只要其中任何两个相等就返回true,否则返回false。(并不是其他number只跟第一个或第二个相比较,是所有的number都要相互比较)
你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)
let mobilePhoneList = [
{
number: '123',
}, {
number: '123456',
}, {
number: '123456789',
},
];
function pf(arr) {
var set = new Set; //创建个集合Set对象(用object对象也可以)
return arr.some(function(v, i){ //遍历 arr数组,当返回值为true时提前退出遍历。
var f = set.has(v.number);//判断每个对象里number属性的值是否在集合Set
set.add(v.number); //将number属性的值添加到集合Set中
return f;
});
}
alert(pf(mobilePhoneList));
定义一个临时变量flag=false用于判断是否存在。遍历这个集合,然后进行判断,找到则将flag=true并且结束循环,然后判断if(flag){}
unique(mobilePhoneList )拿到不重复元素组成的数组,然后和原数组进行长度比对
有帮助望采纳