数组对象中判断

73 阅读2分钟

一、数组对象中id判断添加字段

dispatchUserAdd() {
 this.tableData = this.tableData.map((v) => {
  if (v.id === this.orderId) {
   return { ...v, ...{ user: this.userName, userId: this.userId } };
  }
  return v;
 });
},

二、 添加相同字段

let arr = [
        { name: "lilei", age: "25" },
        { name: "nike", age: "23" },
        { name: "alisa", age: "23" },
      ];
arr.forEach(v=>{
    v['sex']='men'; 
})

三、数组中的对象中筛选出具有非空数组字段的对象,并返回这些字段的数组

let abc = [    {name:'123',list:[{age:17},{age:18}],page:'liming'},
    {name:'456',list:[{age:17},{age:18}],page:'liming'},
    {name:'789',list:[],page:'liming'},
    {name:'012',list:[{age:16}],page:'liming'},
]
const fieldsWithValues = abc.filter(obj =>
    Object.entries(obj).some(([key, value]) => Array.isArray(value) && value.length > 0)
);
console.log(fieldsWithValues);

四、数组中的对象添加一个自增的id字段

let objectsArray = [
  { name: 'Object1' },
  { name: 'Object2' },
  { name: 'Object3' }
];
 
let objectsWithIds = objectsArray.map((obj, index) => ({
  ...obj,
  id: index + 1,
}));
console.log(objectsWithIds);

五、对比数组中,根据每个字段相同,过滤出不同的数组对象返回

let arrData = [
    { id: 1, name: 'aa' },
    { id: 2, name: 'bb' },
    { id: 3, name: 'cc' },
    { id: 4, name: 'dd' },
    { id: 5, name: 'ee' }
]
let serviceList = [
    { id: 2, name: 'bb' },
    { id: 3, name: 'cc' },
    { id: 5, name: 'ee' }
]
let serviceIdList = serviceList.map((item) => item.id)
let resultArr = arrData.filter((item) => !serviceIdList.includes(item.id))
console.log(resultArr,'123')

六、## 多维数组根据对应字符串元素获取其后面的value

const result=[['phone',1000],['mac',300],['imac',2394]]; const findPrice=(data,name)=>{ return new Map(data).get(name); } console.log(findPrice(result,"mac"));
//传入数组和你想获取的商品名,得到300

七、## 判断数组对象中是否包含某对象

let data = [{name:'你有事吗'},{name:'嗨嗨'},{name:'溜溜梅'},];//数组对象 let val = {name:'溜溜梅'}; console.log(JSON.stringify(data).indexOf(JSON.stringify(val)) !== -1); //返回true

八、在一个数组中push一个对象或元素,但是不管该数组中是否含有当前元素,每点击一次按钮都会添加进去。如何避免呢?

let flag = true;
let msg = '';
let arr = []

if(arr.length<6){
    arr.forEach(item=>{
        if(data.id===item.id){ // 对象里的唯一标识id
            msg = '请勿重复添加!'
            flag = false;
        }
    })
}else{
    msg = '最多添加6个!'
    flag = false;
}

if(flag){ // 如果满足条件-数组长度小于6,当前添加的值在数组里不存在,就把值添加进去
    arr.push(data)
}else{ // 否则弹出提示信息
    alert(msg)
}