(一)js去除数组对象中的重复对象
1、根据数组对象中的id作比较,id相同的去掉。这种方法只会保留 id 第一个出现的数组
第一种:
var arr = [
{id: 1, name: 'sli', year: 2012},
{id: 2, name: 'ap', year: 2015},
{id: 1, name: 'alslion', year: 2012},
{id: 3, name: 'pose', year: 2012},
]
//删除arr中的重复对象
var newArr= [];
var arrId = [];
for(var item of arr){
if(arrId.indexOf(item['id']) == -1){
arrId.push(item['id']);
newArr.push(item);
}
}
console.log(arrId,newArr);
结果如下
第二种:reduce()
var arr = [
{name:'uzi',color:'blue'},
{name:'pdd',color:'white'},
{name:'mlxg',color:'orange'},
{name:'uzi',color:'red'},
]
let hash = {};
var newArr = arr.reduce((item, next) => {
hash[next.name] ? '' : hash[next.name] = true && item.push(next);
return item
}, []);
console.log(newArr);
第三种:
let arr = [
{name:'黎明',id:21111},
{name:'王小二',id:1111},
{name:'大小二',id:3222}
]
arr.splice(arr.findIndex(item => item.id === 3222), 1);
2、密码正则表达式
根据网络安全隐患管理规定,需要对密码进行强度管理,不允许有弱口令的存在。
强口令的要求为:
1、长度至少为8位数。2、大写字母(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符,
每类字符至少包含一个。
3、把对象中的componentId的对应 componentName
const datalist=[
{
componentId:'1',
},
{
componentId:'2',
},
{
componentId:'3',
}
]
item.componentName={
"1":“待办”,
"2":"日程"
}[item.componentId]
打印出来的数据:
datalist=[
{
componentId:'1',
componentName:'待办'
},
{ componentId:'2',
componentName:'日程'
},
]
<div :style="{ color: isTemplate === true ? '' : '#A7B1C7' }"></div>
三、找到两个数组对比后的所在原数组的索引值
把数组勇逗号分隔
findSaneElements(arr1,arr2){
let sameElements=[]
for(let i=0;i<arr1.length;i++){
for(j=0;j<arr2.length;j++){
if(arr1[i].id===arr2[j].id){
sameElements.push(i+1)
}
}
}
return sameElments;
}
let findIndexArr=findSaneElements(arr1,arr2)
把数组用逗号分隔
let newArr=findIndexArr.join(',')
四、只能输入正整数并且长度5位
const regx=/^[1-9]\d{0,4}$/ //使用正则表达式限制只能输入正整数,并且长度为5位