1. Array.some
some() 方法用于检测数组中的元素是否满足指定条件(函数提供)
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
如果没有满足条件的元素,则返回false。
var ages = [23,44,3]
if (ages.some(age => age < 10)) {
console.log('true')
}
1.1 array.filter
array.filter(function(currentValue,index,arr), thisValue)
[23,44,3].filter(age => age < 10) // [3]
2. Object.assign(target, ...sources);
将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象
const object1 = {
a: 1,
b: 2,
c: 3
};
const object2 = Object.assign({c: 4, d: 5}, object1);
// object2 {c: 3, d: 5, a: 1, b: 2}
3.1 Set
Set.prototype.size
:返回Set实例的成员总数。
s.add(1).add(2).add(2); // 注意2被加入了两次 s.size // 2 s.has(1) // true s.has(2) // true s.has(3) // false s.delete(2); s.has(2) // false
new Set([1,2,3,1,2]) // Set(3) {1, 2, 3}
Array.from(new Set([1,2,3,1,2])) // [1, 2, 3]
扩展
let a = new Set([1, 2, 3]); let b = new Set([4, 3, 2]); // 并集 let union = new Set([...a, ...b]);// Set {1, 2, 3, 4} // 交集 let intersect = new Set([...a].filter(x => b.has(x)));// set {2, 3} // 差集 let difference = new Set([...a].filter(x => !b.has(x)));// Set {1} // 方法一 let set = new Set([1, 2, 3]); set = new Set([...set].map(val => val * 2)); // set的值是2, 4, 6 // 方法二 let set = new Set([1, 2, 3]); set = new Set(Array.from(set, val => val * 2)); // set的值是2, 4, 6
3.2 Map
JavaScript的对象(Object),本质上是键值对的集合(Hash结构),但是传统上只能用字符串当作键。
ES6提供了Map数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。
也就是说,Object结构提供了“字符串—值”的对应,Map结构提供了“值—值”的对应,是一种更完善的Hash结构实现。
如果你需要“键值对”的数据结构,Map比Object更合适。
var m = new Map(); var o = {p: 'Hello World'}; m.set(o, 'content') m.get(o) // "content" 使用set方法,将对象o当作m的一个键,然后又使用get方法读取这个键, 作为构造函数,Map也可以接受一个数组作为参数。该数组的成员是一个个表示键值对的数组。 var map = new Map([ ['name', '张三'], ['title', 'Author'] ]); map.size // 2 map.has('name') // true map.get('name') // "张三" map.has('title') // true map.get('title') // "Author" size属性:返回Map结构的成员总数。 set(key, value) 方法设置key所对应的键值,然后返回整个Map结构 ,因此可以采用链式写法。 get(key)方法读取key对应的键值,如果找不到key,返回undefined。 has(key)方法返回一个布尔值,表示某个键是否在Map数据结构中 delete(key)方法删除某个键,返回true。如果删除失败,返回false。 clear() 方法清除所有成员,没有返回值。 keys():返回键名的遍历器。 values():返回键值的遍历器。 entries():返回所有成员的遍历器。 forEach():遍历Map的所有成员。 Map结构转为数组结构,比较快速的方法是结合使用扩展运算符(…)。 let map = new Map([ [1, 'one'], [2, 'two'], [3, 'three'], ]); [...map.keys()] // [1, 2, 3] [...map.values()] // ['one', 'two', 'three'] [...map.entries()] // [[1,'one'], [2, 'two'], [3, 'three']] [...map] // [[1,'one'], [2, 'two'], [3, 'three']]