Set实例的方法分为两大类:操作方法(用于操作数据)和遍历方法(用于遍历成员),操作方法有:add(value)、delete(value)、has(value)、clear();遍历方法有:keys()、values()、entries()、forEach()
1、ES6——new Set方法
const myArray = [1,1,2,2,3,3,4,4,5,5]
console.log([...new Set(myArray )]);// [1, 2, 3, 4, 5]
2、Array.from(该方法可以将 Set 结构转为数组)
function dedupe(array) {
return Array.from(new Set(array));
}
dedupe([1, 1, 2, 3]) // [1, 2, 3]
let aa = { a: 1, b: 2, c: 3 };
let dd = { d: 4, c: 5, b: 6 };
console.log({ ...aa, ...dd });
let cc = [1, 2, 3, 4];
let bb = [2, 5, 1, 6, 7];
console.log([...cc, ...bb]);
let ccc = [{ a: 1 }, { b: 2 }, { c: 3 }, { d: 4 }];
let bbb = [{ a: 2 }, { b: 5 }, { c: 1 }, { d: 6 }, { f: 7 }];
console.log([...ccc, ...bbb]);
includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。
[1, 2, 3].includes(2); // true
[1, 2, 3].includes(4); // false
[1, 2, 3].includes(3, 3); // false
[1, 2, 3].includes(3, -1); // true
[1, 2, NaN].includes(NaN); // true
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。
findIndex() 方法为数组中的每个元素都调用一次函数执行:
当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。
如果没有符合条件的元素返回 -1
Array.isArray() 用于确定传递的值是否是一个 Array。
Array.isArray([1, 2, 3]);
// true
Array.isArray({foo: 123});
// false
Array.isArray("foobar");
// false
Array.isArray(undefined);
// false
Array.from() 方法从一个类似数组或可迭代对象中创建一个新的,浅拷贝的数组实例。
console.log(Array.from(‘foo‘));
// expected output: Array ["f", "o", "o"]
console.log(Array.from([1, 2, 3], x => x + x));
// expected output: Array [2, 4, 6]
对象内容合并
Object.keys() - 获得对象中所有的键名,以数组的形式返回
var obj = { a:1,b:2 };
var names = Object.keys(obj);//[‘a‘, ‘b‘]
-----------------------------------
Object.values() - 获得对象中所有的值内容,以数组的形式返回
var obj = { a:1,b:2 };
var values = Object.values(obj);//[1, 2]
-----------------------------------
Object.entries() - 获得对象中所有的成员数据,以数组的形式返回,成员的内容也是数组形式
var obj = { a:1,b:2 };
var values = Object.entries(obj);//[[‘a‘,1], [‘b‘,2]]