javascript陣列的幾個常用姿勢

2021-09-14 03:52:05 字數 1777 閱讀 8598

本文將分享幾個在專案中常用的陣列方法~

不定期有乾貨更新哦,歡迎watch,star!

const sortary = [1, 5, 4, 3, 2, 6, 7];

1.按陣列元素大小從小到大進行排序

sortary.sort((a, b) => a - b); //[1, 2, 3, 4, 5, 6, 7]

2.按陣列元素大小從大到小進行排序

sortary.sort((a, b) => b - a); //[7, 6, 5, 4, 3, 2, 1]

const sortid = [,,

];3. 按陣列元素的id從小到大進行排序

sortid.sort((a, b) => a.id - b.id);

//[,,]

4.按陣列元素的id從大到小進行排序

sortid.sort((a, b) => b.id - a.id);

//[,,]

};

const uniqary = ary => array.from(new set(ary));

const uniqary2 = ary => ary.filter((v, k) => ary.indexof(v) == k);

const ary = [1, 2, 1, 2, 3, 4, 3];

uniqary(ary) //[1,2,3,4]

uniqary2(ary) //[1,2,3,4]

const copyary = [1, 2, 3, 4];

ary.push(5);

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

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

const ary2 = json.parse(json.stringify(copyary));

ary2.push(5);

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

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

const ary = [1, 2, 3, 4, 5, 6, 7];

const splitary = (ary, size) =>

return box;

};console.log(splitary(ary, 3)); //[[1,2,3],[4,5,6],[7]]

console.log(splitary(ary,2)); // [[1,2],[3,4],[5,6],[7]]

//二維陣列扁平化

const ary = [[1, 2], [3, 4], [5, 6]];

const flatten = ary => ary.reduce((a, b) => [...a, ...b]);

console.log(flatten(ary)); //[1, 2, 3, 4, 5, 6]

//多維陣列扁平化

const ary2 = [[1, [2, 3]], [4, [5, [6, 7]]]];

const flattens = ary =>

ary.reduce((a, b) => a.concat(array.isarray(b) ? flattens(b) : b), );

console.log(flattens(ary2)); //[1, 2, 3, 4, 5, 6, 7]

javascript語法的幾個難點

作用域,作用域鏈以及with的原理 作用域與閉包 object.constructor 物件的建構函式 object.hasownproperty 檢查屬性是否被繼承 object.isprototypeof 乙個物件是否是另乙個物件的原型 object.propertyisenumerable 是...

javascript編碼的幾個方法

escape 函式可對字串進行編碼,這樣就可以在所有的計算機上讀取該字串。引數描述 string 必需。要被轉義或編碼的字串。已編碼的 string 的副本。其中某些字元被替換成了十六進製制的轉義序列。該方法不會對 ascii 字母和數字進行編碼,也不會對下面這些 ascii 標點符號進行編碼 其他...

關於javascript的幾個小實驗

猜想 不會的,現代的瀏覽器應該已經做了優化。實驗方法 在頁面中放一段執行時間超過2 秒的js 然後在阻塞 的後面判斷能不能去的後續的 dom元素。靠!沒想到是這樣的結果!script 檔案果真阻塞了 dom的解析。瀏覽器真的是乙個檔案乙個檔案的解析的。實驗 外部js 指令碼 var begin ne...