JavaScript数组的API
发布日期:2021-05-10 03:43:13 浏览次数:19 分类:精选文章

本文共 3328 字,大约阅读时间需要 11 分钟。

JavaScript���������API

������ ���������������������/������������������������`flat()`

������������

var arr1 = [1, 2, [3, 4]]; arr1.flat(); // [1, 2, 3, 4]
var arr2 = [1, 2, [3, 4, [5, 6]]]; arr2.flat(2); // [1, 2, 3, 4, 5, 6]
var arr3 = [1, 2, , 4, 5]; arr3.flat(); // [1, 2, 4, 5]

���`flat([depth])`������������������������������������������������������������������������������������������������������������1���

**������������**���������`Array.reduce()`���`Array.concat()`������

const flat1 = function(arr) {
return arr.reduce((pre, cur) => Array.isArray(cur) ? pre.concat(flat1(cur)) : pre.concat(cur), []);
var arr3 = [1, 2, 3, [1, 2, 3, 4, [2, 3, 4]]]; flat1(arr3); // [1,2,3,1,2,3,4,2,3,4]

**������������**

������������������������������������������������������������������������������������������������������flat1������������������������������������������������������������������

������������������������`set()`

Array.from(new Set([1,2,3,3,4,4])) // [1,2,3,4]
Array.from(new Set([1,2,3,3,4,4,5,6])) // [1,2,3,4,5]

**������������**

ES6���������Set������������������������������������������������������`Array.from`���Set���������������������������������������

������������������������`sort()`

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

**������������**���������������������������

Array.prototype.bubblesort = function() {
let arr = this, len = arr.length; for (let outer = len; outer >= 2; outer--) {
for (let inner = 0; inner <= outer - 1; inner++) {
if (arr[inner] > arr[inner + 1]) {
[arr[inner], arr[inner + 1]] = [arr[inner + 1], arr[inner]];
} } } return arr;
[3, 4, 2,1].bubblesort(); // [1,2,3,4]

**������������**

���������������������������������������������������"���"���������������������������������������������

���������������

Math.max(...[1,2,3,4]); // 4 Math.max.apply(this, [1,2,3,4]); // 4 Array([1,2,3,4]).reduce((prev, cur) => { return Math.max(prev, cur); }, 0); // 4

**������������**

���������������������������������������������������������������������������Math������������������reduce���������

������������

Array([1, 2, 3, 4]).reduce((prev, cur) => prev + cur, 0); // 10 function sum(arr) { if (arr.length === 0) return 0; else if (arr.length === 1) return arr[0]; else return arr[0] + sum(arr.slice(1)); }; sum([1, 2, 3, 4]); // 10

**������������**

���������������������������������������������������1������������������������������������������������������������������

������������

Array([1,2,3]).concat([5,6]); // [1,2,3,5,6] Array.from({length: 2}, (_, i) => [2*i+1, 2*i+2]).concat(Array.from({length: 3}, (_, i) => [2*i+3, 2*i+4, 2*i+5, 2*i+6, 2*i+7] ));

������������������������

[2,3,5].indexOf(3); // 1 [2,3,5].includes(4); // false Array([2,3,5]).find((item) => item === 3); // 3 Array([2,3,5]).findIndex((item) => item === 3); // 1 Array([2,3,5]).some(item => item === 3); // true

���������������������

Array.prototype.slice.call(arguments); Array.prototype.slice.apply(arguments); Array.from(arguments); Array.from(arguments);

������������������������

[2,3,5].fill(true, false, true); // [false, false, false] [2,3,5].fill(false); // [false, false, false]

���������������������������/���������������������

[2,3,5].every(item => item > 2); // false [2,3,5].some(item => item > 2); // true

���������������������

[2,3,5].filter(item => item > 2); // [3,5]
上一篇:常见的面向对象的面试题(附答案)
下一篇:常见的前端vue面试题

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月22日 14时47分34秒