数组对象常用的方法
1.检测数组中是否有某个值 比如检测输入的ip是否唯一 .some
let isHaveIp=arrSourse.some(item=>item.ip===inputIp)
2.浅拷贝 深拷贝
let two_brand = one_brand.slice(0);//浅拷贝
let two_brand = one_brand.map(o => ({...o}));//深拷贝
3.数组判空
JSON.stringify(ObjData) == "{}"
4.将对象数组中指定键值赋给另一个数组并对更改对象数组中的key值(键名)
let arr = [{id:1, weChat:'test1'},{id:2, weChat:'test2'},{id:3, weChat:'test3'}]
let newArr = [];
arr.forEach((item)=>{
let obj = {};
for(let i=0; i <= arr.length; i++){
obj.id = item.id;
obj.name = item.weChat;
}
newArr.push(obj);
});
console.info(newArr);
//[{id:1, name:'test1'},{id:2, name:'test2'},{id:3, name:'test3'}]
5.去除数组中的空元素
record = record.filter(function(n){return n})
6.创建固定长度的空数组
let record= Array(3).fill('')
7.修改数组对象中的某个对象数据[{},{},{},{改/删除}]
//先找到要删除的数据的下标 根据id来找 因为id唯一
// ① 获取willchangeArr中的id作为数组 idArr
let idArr = willchangeArr.map(item => {
return item.id
})
// ② 获取id为‘id1’的这组数据在willchangeArr的下标值
const index = idArr.indexOf('id1')
// 现在可以根据获得的index索引 对原数组进行修改、删除
// 在willchangeArr中修改这个数据为{id:'idx',name:'xx',age:1,sex:'x'}
willchangeArr[index] = {id:'idx',name:'xx',age:1,sex:'x'}
// console.log(willchangeArr) [{id:'idx',name:'xx',age:1,sex:'x'},{id:'id2',name:'小黄',age:19,sex:'b'},{id:'id3',name:'小黑',age:28,sex:'g'}]
// 在willchangeArr中删除id为‘id1’的这个数据
willchangeArr.splice(index, 1)
// console.log(willchangeArr) [{id:'id2',name:'小黄',age:19,sex:'b'},{id:'id3',name:'小黑',age:28,sex:'g'}]
8.查找值在数组、对象中的index值
let index=objData.findIndex((item)=>item.key===edictket)//对象
let undex=[1,2,3].findIndex(1)//数组 0
9. 去重并过滤undefined
let uniqueArr = [...new Set(dataSource.map((item) => item[cur]))].filter(Boolean);
10.模糊匹配
let tmp = dataSource.filter((item) => String(item[curSltValue]).match(searchCurIptValue))
11 通过对象的属性值找到属性名
const findKey = (obj, value, compare = (a, b) => a === b) => {
return Object.keys(obj).find((k) => compare(obj[k], value));
};