es6一些常用的,好用的操作
源数据
let people = [
{id: 1, name: "a", age: 12},
{id: 2, name: "b", age: 13},
{id: 3, name: "c", age: 14},
{id: 4, name: "d", age: 15},
{id: 5, name: "e", age: 16},
{id: 6, name: "f", age: 16}
];
创建新的对象
let kids = [];
people.forEach(person => {
if (person.age < 15) {
kids.push({
id: person.id,
name: person.name
})
}
});
console.log("kids",kids);//[{id: 1, name: "a"},{id: 2, name: "b"},{id: 3, name: "c"}]
重写forEach示例重写(推荐)
let kids2 = people
.filter(person => person.age < 15)
.map(person => ({
id: person.id,
name: person.name
}));
console.log("kids2",kids2);
取出一个属性
let arrnew = []
people.forEach(e => {
arrnew.push(e.name)
})
console.log("arrnew",arrnew); //["a", "b", "c", "d", "e", "f"]
一个属性去重
let arrnew = ["a", "a", "c", "c", "e", "f"]
console.log("arrnew",arrnew);
let arrnew2 = Array.from(new Set(arrnew))
console.log("arrnew2",arrnew2); //["a", "c", "e", "f"]
一个数组根据属性去重
let people = [
{id: 1, name: "a", age: 12},
{id: 2, name: "a", age: 13},
{id: 3, name: "d", age: 14},
{id: 4, name: "d", age: 15},
{id: 5, name: "e", age: 16},
{id: 6, name: "f", age: 16}
];
let arr1 = people.filter((obj, pos, arr)=>{
return arr.map(mapObj =>mapObj['name']).indexOf(obj['name']) === pos;
});
console.log(arr1); //[{id: 1, name: "a", age: 12},{id: 3, name: "d", age: 14},{id: 5, name: "e", age: 16},{id: 6, name: "f", age: 16}]
用map取出一个属性(推荐)
let arrnew1 = people.map((item,index) => {
return item.name;
})
console.log("arrnew1",arrnew1); //["a", "b", "c", "d", "e", "f"]
取出一个属性变成对象
let arrnew2 = people.map((item,index) => {
return Object.assign({},{'name':item.name})
})
console.log("arrnew2",arrnew2); //[0: {name: "a"},{name: "b"},{name: "c"},{name: "d"},{name: "e"},{name: "f"}]
返回项参与的表达式值
let numbers = [1, 2, 3];
let numbers_map = numbers.map(number => number * 6);
console.log("numbers_map",numbers_map);//[6,12,18]
返回满足条件的项
let numbers = [1, 2, 3];
let numbers_filter = numbers.filter(number => number % 2 === 0);
console.log("numbers_filter",numbers_filter);//[2]