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乙個新的資料,棧頂的指向也同...