通过属性查找数组中相应的对象
//返回的是新数组,不会改变原数组
//筛选出arrs数组中 每一项符合done属性为true的,组成并返回一个新数组newArr
const newArr = arrs.filter((arr)=>{return arr.done === true})
改变数组中对象的某一些属性
//遍历todos,当id相同时,才会操作对象中的属性,将done的值改变(true)。
//{...todo,done:done}, ...扩展运算符,这里只改变了todo的done
todos.map((todo)=>{
if(todo.id === id){ return {...todo,done:done} }
else{ return item }
})
//例如:
let arr = {name:'liko',action:'play'}
let arr2 = {...arr,name:'liko',action:'sleep'}
arr就是{name:'liko',action:'sleep'}
往数组中前面添加对象
//...todos相当于解构,todo为对象,放在前面就是在第一个位置添加数据
todos:[newTodo,...todos]
数组中数据处理
var arr = [
{ id: 1, num: 1 },
{ id: 2, num: 2 },
{ id: 3, num: 3 },
];
var newArr = 0;
//遍历 += : newArr = newArr + item.id * item.num
arr.forEach((item) => {
newArr += item.id * item.num;
});
console.log(newArr); 14
数组去重
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 9];
var newArr = new Set(arr);
console.log(newArr);
//set结构 是一个对象
console.log([...newArr]);
// 去重后解构--数组 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]