修改原数组的方法:splice/reverse/fill/copyWithin/sort/push/pop/unshift/shift
原数组不变的方法:slice/map/forEach/every/filter/reduce/entries/find
1、修改数组的:
splice(index,num,item1,item2..) //index开始删除数组下标,num删除数量,item。。插入的元素
reverse() 数组翻转
sort() 数组排序
push()数组末尾增加一个元素
unshift() 数组头部增加一个元素
pop() 取出数组末尾的一个元素
shift() 取出数组头部一个元素
es6新增的方法:
concat()合并数组 [3,45].concat(3,[3,7])
fill() fill方法使用给定值,填充一个数组
new Array(3).fill(7)
// [7, 7, 7]
copyWithin(target,start,end);数组实例的copyWithin方法,在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组
target(必需):从该位置开始替换数据。如果为负值,表示倒数。
start(可选):从该位置开始读取数据,默认为 0。如果为负值,表示倒数。
end(可选):到该位置前停止读取数据,默认等于数组长度。如果为负值,表示倒数。
[1, 2, 3, 4, 5].copyWithin(0, 3)
// [4, 5, 3, 4, 5]
2、不修改数组的方法:
slice/map/forEach/every/filter/reduce/entries/find
ES6新增的数据结构
一、Set:它类似于数组,但是成员的值都是唯一的,没有重复的值
创建set数据方法:
(1)通过add
var a = new Set();
[2,3,4].forEach((index,val)=>{
a.add(val)
})
(2)直接new操作数组和类数组
var a = new Set([23,45,66])
当然set也能转为化普通数组[...a]
// 去除数组的重复成员
[...new Set(array)]
其中NaN和NaN是相等的,{}和{}是不相等的
Set 结构的实例有以下属性:
Set.prototype.constructor:构造函数,默认就是Set函数。
Set.prototype.size:返回Set实例的成员总数。
Set 实例的方法分为两大类:操作方法(用于操作数据)和遍历方法(用于遍历成员)。下面先介绍四个操作方法。
add(value):添加某个值,返回 Set 结构本身。
delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
has(value):返回一个布尔值,表示该值是否为Set的成员。
clear():清除所有成员,没有返回值。
遍历方法:
Set 结构的实例有四个遍历方法,可以用于遍历成员。
keys():返回键名的遍历器
values():返回键值的遍历器
entries():返回键值对的遍历器
forEach():使用回调函数遍历每个成员
let set = new Set(['red', 'green', 'blue']);
for (let item of set.keys()) {
console.log(item);
}
// red
// green
// blue
for (let item of set.values()) {
console.log(item);
}
// red
// green
// blue
for (let item of set.entries()) {
console.log(item);
}
// ["red", "red"]
// ["green", "green"]
// ["blue", "blue"]
let set = new Set([1, 4, 9]);
set.forEach((value, key) => console.log(key + ' : ' + value))
其中map filter Array.from也能操作
二 Map :Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map 比 Object 更合适
创建Map数据结构:
(2)通过set方法:
const m = new Map();
const o = {p: 'Hello World'};
m.set(o, 'content')
m.get(o) // "content"
m.has(o) // true
m.delete(o) // true
m.has(o) // false
(2)通过数组方法
const map = new Map([
['name', '张三'],
['title', 'Author']
]);
map.size // 2
map.has('name') // true
map.get('name') // "张三"
map.has('title') // true
map.get('title') // "Author"
(3)Map 结构原生提供三个遍历器生成函数和一个遍历方法。
keys():返回键名的遍历器。
values():返回键值的遍历器。
entries():返回所有成员的遍历器。
forEach():遍历 Map 的所有成员。
(4)Map还可以通过...[]转换为数组
const myMap = new Map()
.set(true, 7)
.set({foo: 3}, ['abc']);
[...myMap]