数组方法在我看来是最重要的,但是貌似之前有些忽视,学习什么时候都不晚,如果有幸这篇文章被你看见,请一定要好好记住这些方法,然后将底层代码实践一下,会用是第一 步,知道原理是第二步。我们一起加油吧!
---------------------------- 以上是无用乃为大用的质朴语言 -----------------------------------
数组方法
类型转换
数组转换为字符串
使用方式:arr.toString(); ** b.jion("*")**[jion也可以实现转换还能定义分隔符号] arr.toString()
json转换为字符串
obj是一个对象
使用方法:JSON.string(obj)
字符串转换为json对象
使用方法:** JSON.parse(str)**
实现栈的先进后出(获取栈顶元素用arr.length-1)
进栈,这个方法可以实现向数组元素末尾插入一个元素
数组方法可以用于实现栈,arr.push(a)
出栈实现将栈最末尾的一个元素弹出
arr.pop()
实现队列的先进先出(获取队头元素用arr【0】)
实现进队操作和进栈操作一样
实现出队操作
使用方式:arr.shift(a); arr.unshift(a)可以实现在开头添加元素并且“反位移动旧元素”
拼接数组splice()
可以插入也可以删除
arr.splice(2, 2, “Lemon”, “Kiwi”);[第一个元素是元素插入的位置,第二个元素是从该位置开始删除的个数,第三个插入元素]
数组拼接(不更改原数组)
arr.concat(arr1,arr2) 该方法不会更改原数组而是创建新的数组
裁剪数组(不更改原数组)
arr.slice(3) 从三号位置开始裁剪,包括三号位置 arr.slice(1,3) 一号位置开始三号位置结束,数组下标表示0,1
数组排序
sort()
sort方法可以对数组进行排序但是很多人都不知道的是如果不添加一个比值函数,那么只能对0到9的数值和字母进行正常排序其他都会出错原因是sort是按照unicode编码方式进行排序,而这个编码中只有0到9这是个数字
为解决这一的方法我们添加了一个回调函数,如果a-b>0则从小到大排序
cars.sort(function(a, b){return a.year - b.year}); 比较对象
arr.sort(function(a,b){
return a-b;
}
翻转数组元素(感觉没啥用)
reverse() 方法反转数组中的元素。
找数组中的最大最小值
Math.max.apply(null, arr);
Math.min.apply(null, arr);
数组迭代
Array.forEach()无返回值
function myFunction(value, index, array) {
}
Array.map()有返回值
function myFunction(value, index, array) {
return value * 2;
}
Array.filter()过滤器
function myFunction(value, index, array) {
return value > 18;
}
Array.reduce()
四个参数值:
第一个是:总数(初始值/先前返回的值)
第二个是:项目值
第三个是索引值
第四个是数组本身
arr.reduce(total, value, index, array) {
return total + value;
}
Array.every()
判断是否所有的值都满足,返回false
var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);
function myFunction(value, index, array) {
return value > 18;
}
Array.some()
判断是否有值满足
var numbers = [45, 4, 9, 16, 25];
var someOver18 = numbers.some(myFunction);
function myFunction(value, index, array) {
return value > 18;
}
Array.indexOf() Array.lastIndexOf(),返回数组下标
arr.indexOf(“apple”);
Array.find() Array.findIndex()
返回找到的第一个值