修改原數組的方法: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]