js 資料結構 map Set

2021-09-27 04:24:20 字數 1775 閱讀 7071

js 對空位的處理,已經很不一致了,大多數情況下會忽略空位。

//1.擴充套件運算子(spread)是三個點(...)

console.log(1, ...[2, 3, 4], 5);

function push(array, ...items)

// 陣列複製

const a1 = [1, 2];

const a2 = a1.concat();

const a3 = [...a1];

const [...a4] = a1;

// 陣列合併

var arr1 = ['a', 'b'];

var arr2 = ['c'];

var arr3 = ['d', 'e'];

// es6的合併陣列

console.log([...arr1, ...arr2, ...arr3]); // [ 'a', 'b', 'c', 'd', 'e' ]

// arr.push() 擴充套件

let arr1 = [0, 1, 2];

let arr2 = [3, 4, 5];

arr1.push(...arr2);

// 陣列拆分【生成】

const [first, ...rest] = [1, 2, 3, 4, 5];

console.log(first) // 1

console.log(rest) // [2, 3, 4, 5]

// 字串轉陣列

console.log([...'hello']) // [ "h", "e", "l", "l", "o" ]

// 提取鍵值

let map = new map([

[1, 'one'],

[2, 'two'],

[3, 'three'],

]);let arr = [...map.keys()]; // [1, 2, 3]

let arr2 = [...map.values()]; // [1, 2, 3]

// 陣列轉換

let arraylike = ;

let arr2 = array.from(arraylike); // ['a', 'b', 'c']

array.from('hello')// ['h', 'e', 'l', 'l', 'o']

array.from([1, 2, 3], (x) => x * x)// [1, 4, 9]

array.of(3, 11, 8) // [3,11,8]

array.of(3) // [3]

array.of(3).length // 1

/*target(必需):從該位置開始替換資料。如果為負值,表示倒數。

start(可選):從該位置開始讀取資料,預設為 0。如果為負值,表示倒數。

end(可選):到該位置前停止讀取資料,預設等於陣列長度。如果為負值,表示倒數。

*/// -2相當於3號位,-1相當於4號位

[1, 2, 3, 4, 5].copywithin(0, -2, -1) // [4, 2, 3, 4, 5]

[nan].indexof(nan) // -1

[nan].findindex(item => object.is(nan, item))// 0

[1, 2, 3].includes(4) // false

[1, 2, nan].includes(nan) // true

//map 結構的has方法,是用來查詢鍵名的

參考鏈結

js 資料結構

樹是電腦科學中經常用到的一種資料結構。樹是一種非線性的資料結構,以分層的方式儲存資料。二叉樹每個節點的子節點不允許超過兩個。乙個父節點的兩個子節點分別稱為左節點和右節點,通過將子節點的個數限定為2,可以寫出高效的程式在樹中插入 查詢和刪除資料。二叉查詢樹 bst 是一種特殊的二叉樹,相對較小的值儲存...

js資料結構

一 堆疊的概念 在計算機領域中,堆疊是兩種資料結構。棧 佇列優先,先進先出 由作業系統自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。堆 先進後出 動態分配的空間 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 分配方式倒是類似於鍊錶。二 js的...

js資料結構 棧

棧是一種遵循後進先出 lifo 的資料結構,其總共就兩個主要的操作,分別是push和pop。看上面這張圖可以大致的知道,棧的幾個特點 push操作 pop操作 通過上面的幾個特點,來看一看js如何用 實現乙個棧 class stack push操作 push x push乙個新的資料,棧頂的指向也同...