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类型那一章节的内容,感受到结构化记忆的强大。
因为如上内容基本都是凭着记忆记录下来的,深感很多碎片化的知识,如果能够结构化记忆的话,真的可以加深印象!
希望这次记录是一次好的开头,今后多多记录技术相关的内容。