我是如何书写es6来提高工作效率的

348 阅读2分钟

查找单项数据

let ids1 = [1,2,3,4,5,6,7,8,9]
let ids2 = [{id:1,name:'a'},{id:2,name:'b'},{id:3,name:'c'}]

let _ids1 = ids1.find(item => item === 1)
let _ids2 = ids2.find(item => item.id === 1)
console.log(_ids1) // 1
console.log(_ids2) // {id:1,name:'a'}

查询数据集合

let ids1 = [1,2,3,4,5,6,7,8,9]
let ids2 = [{id:1,name:'a'},{id:2,name:'b'},{id:3,name:'c'}]

let _ids1 = ids1.filter(item => item > 1)
let _ids2 = ids2.filter(item => item.id > 1)
console.log(_ids1) // [1,2,3,4,5,6,7,8,9]
console.log(_ids2) // [{id:2,name:'b'},{id:3,name:'c'}]

数组类是否存在某一项

// 简单类型
let ids1 = [1,2,3,4,5,6,7,8,9]

let fnd = ids1.find(item => item === 1) // 1 返回该项
let fix = ids1.findIndex(item => item === 1) // 0 返回下标
let idf = ids1.indexOf(1)  // 0 返回下标
let ics = ids1.includes(1) // true 返回布尔
let fil = ids1.filter(item => item === 1).length // 1 返回个数
let sme = ids1.some(item => item === 1) // true 返回布尔

// 复杂类型
let ids2 = [{id:1,name:'a'},{id:2,name:'b'},{id:3,name:'c'}]

let fnd = ids2.find(item => item.id === 1) //{id:1,name:'a'} 返回该项
let fix = ids2.findIndex(item => item.id === 1) // 0 返回下标
let fil = ids2.filter(item => item.id === 1).length // 1 返回个数
let sme = ids2.some(item => item.id === 1) // true 返回布尔
删除数组
let ids1 = [1,2,3,4,5,6,7,8,9]
let ids2 = [{id:1,name:'a'},{id:2,name:'b'},{id:3,name:'c'}]

let _ids1 = ids1.filter(item => item !== 1)
let _ids2 = ids2.filter(item => item.id !== 1)

console.log(_ids1) // [2,3,4,5,6,7,8,9]
console.log(_ids2) // [{id:2,name:'b'},{id:3,name:'c'}]

// splice略过

数据合并

// 多数组合并
let ids1 = [1,2,3]
let ids2 = [4,5,6]

let arr1 = ids1.concat(ids2) // [1,2,3,4,5,6]
let arr2 = [...ids1, ...ids2] // [1,2,3,4,5,6]

// 深度合并
let ids1 = [1,2,3,[4,5,6]]

let arr1 = ids1.flat() // [1,2,3,4,5,6]

修改数据

// 原数组每一项 * 2

let ids1 = [1,2,3,4,5,6]

let arr1 = ids1.map(item => item * 2)
let arr2 = Array.from(ids1, item => item * 2)
ids1.forEach((item,i) => ids1[i] = item * 2)

判断数组中条件成立的个数

let ids1 = [1,2,3,4,5,6]
let ids2 = [{id:1,name:'a'},{id:2,name:'b'},{id:3,name:'c'}]

let arr1 = ids1.filter(item => item > 4).length
let arr2 = ids2.filter(item => item.id > 4).length

数组每一项是否都符合要求

let ids1 = [1,2,3,4,5,6]

let arr = ids1.every(item => item > 1) // false

数组求和

let ids1 = [1,2,3,4,5,6]

let arr = ids1.reduce((a,b) => a + b) // 21
数组去重
let ids = [1,1,2,3,3,2,1,6]

let arr1 = [...new Set(ids)]
let arr2 = Array.from(new Set(ids))
let arr3 = ids.filter((item,index,arr) =>  arr.indexOf(item, 0) === index)
let arr4 = ids.reduce((prev,cur) => prev.includes(cur) ? prev : [...prev,cur],[]);

数组交集

let ids1 = [1,2,3,4,5,6]
let ids2 = [2,3,4,6,7,8,9]

let arr = ids1.filter(item => ids2.includes(item))

数组差集

let ids1 = [1,2,3,4,5,6]
let ids2 = [2,3,4,6,7,8,9]

let arr = [...ids1,...ids2].filter(item => !ids2.includes(item) || !ids1.includes(item))
结构赋值
let a = { b: 'b', c: 'c', d: 'd' }

let { c, d, e = 20 } = a
console.log(c,d,e) // c, d, 20

浅拷贝

let arr = [1,2,3,4,5,6]
let axin = { a:1,b:2,c:3 }

let arr1 = [...arr]
let axin1 = [...axin]
let axin2 = Object.assign({},axin)

今天临时整理的,以后定期更新。请忽略我的随机命名法。