js之Array类型

184 阅读2分钟

1. 检测数组

es5出了一个检测数组的方法, Array.isArray(); 为了兼容低版本浏览器,可以用 Obejct.prototype.toString.call([]) === '[object Array]' 来检测

2. 转换方法

Array的几个方法有toString, toLocaleString等。

3. 栈方法 (后进先出)

array.push(1);
array.pop();

用这两种自带方法可以模拟栈的操作。pop()是指删除数组的最后一项。

4. 队列方法(先进先出)

array.push(1);
array.shift()

用这两种方法可以模拟队列的操作。shift()方法删除数组的第一项。

5. 重排序方法

主要有两个:

reverse() 反转数组
sort() 对数组进行排列,参数为一个函数,该函数决定排列的规则。
需要注意,sort()默认是对字符串进行排序的。

eg:

[1, 2, 3, 10].sort();    //  [1, 10, 2, 3]

[1, 3, 2, 10].sort(function(a, b) {
    return a - b;    // 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
})
// 这样就可以返回一个从小到大顺序数组了

6. 操作方法

slice(start, end)   

const arr = [1, 2, 3];
arr.slice(0, 1);   // [1]
arr;     // [1, 2, 3]

这个方法是不会影响原数组的。

splice(index, size, item1,.....itemX)

const arr = [1, 2, 3];
arr.splice(0, 1, 10);    // [10 , 2, 3]

const arr1 = [1, 2, 3];
arr1.splice(0,1);     // [2, 3]

这个方法就很强大了,可以删除数组中元素,可以修改,也可以新增。

另外这个方法会改变原数组的

7. 位置方法

位置方法就比较简单,indexOf 返回找到的字符下标。另外一个是lastIndexOf,也很好理解,返回找到的最后该字符的下标。

8. 迭代方法

  • every(), 迭代的每一项都满足条件,就返回true

  • some(), 迭代中只要有一项满足条件,就返回true

  • forEach(), 仅仅做迭代,不会返回任何东西

  • map(), 迭代每一项,返回操作后的值

  • filter(), 过滤数组,返回符合条件的迭代项

9. 归并方法

reduce(), 可以说是很强大的一个函数,高级用法有很多,自己也还需要去探索下。

平常的用法就是用来累加值。

const arr = [1, 2, 3];
arr.reduce((total, cur) => total + cur , 0);    // 6

const arr2 = [{a:1}, {b: 2}];
arr.reduce((total, cur) => {
    total = {
        ...total,
        ...cur
    }
    return total;
}, {});                    // { a: 1, b: 2}

好了,js array类型这一章就总结到这。其实以上内容基本都是参考红宝书的章节。我之前看了红宝书的array类型那一章节的内容,感受到结构化记忆的强大。

因为如上内容基本都是凭着记忆记录下来的,深感很多碎片化的知识,如果能够结构化记忆的话,真的可以加深印象!

希望这次记录是一次好的开头,今后多多记录技术相关的内容。