JS之数组方法

常规方法
toString() 把数组转换为数组值(逗号分隔)的字符串。在需要原始值的时候,JS会自动把数组转换为字符串。
join(param) 和toString相似,区别在于以param作为分隔符

增删改
pop() 删除最后一个元素,返回被删除的值
push() 在最后增加一个元素,返回新数组的长度
shift() 删除首个数组元素,并将后面的元素前移,返回被删除的元素
unshift() 在数组的开头添加新元素,整个数组后移,返回新数组长度
arr[index] = newValue 数组index索引对应值的修改
arr[arr.length] = newVal 数组末尾追加新元素
delete arr[index] 清空指定索引对应的元素,会在数组留下未定义的空洞,不建议使用

拼接数组

splice(index,num,[param1][]...)  从index位置,删除num个元素,并插入param1,param2等元素
//在索引为2开始插入两个元素
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, 0, "Lemon", "Kiwi");
//删除索引下标为2开始的两个元素,并拼接
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, 2, "Lemon", "Kiwi");
//删除元素
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(0, 1);        //删除 fruits 中的第一个元素

concat(arr1, arr2)
合并多个数组元素返回一个新的数组

var arr1 = ["Cecilie", "Lone"];
var myChildren = arr1.concat(["Emil", "Tobias", "Linus"]); 

slice(index1,[index2])
裁剪从index索引位置开始到index2(不包含index2)之间的数组并返回一个新的数组

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1);  //"Orange", "Lemon", "Apple", "Mango"

数组排序
**sort()**
将数组元素按字母书序排序,会直接影响原数组的顺序
**reverse()**
反转数组中的元素,会直接影响原数组的顺序
扩展:sort()函数支持自定义比较函数,方便支持除了按照字母顺序进行排序之外,还可以支持其他的方式,具体如下:

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a - b});  //按数字的从小到大的顺序排序,得出的结果为[1, 5, 10, 25, 40, 100]
points.sort(function(a, b){return b - a});  //从大到小的顺序排序
points.sort(function(a, b){return 0.5 - Math.random()});  //按随机顺序排序
Math.max.apply(null, arr); //获取数组的最大值
Math,min.apply(null, arr); //获取数组的最小值

手动获取最大值、最小值

function myArrayMax(arr) {
    var len = arr.length
    var max = -Infinity; // -无穷大
    while (len--) {
        if (arr[len] > max) {
            max = arr[len];
        }
    }
    return max;
}

function myArrayMin(arr) {
    var len = arr.length
    var min = Infinity;
    while (len--) {
        if (arr[len] < min) {
            min = arr[len];
        }
    }
    return min;
}

数组遍历
for循环

使用临时变量,将长度缓存起来,避免重复获取数组长度,当数组较大时优化效果才会比较明显。

for(j = 0,len=arr.length; j < len; j++) {
    
}

foreach循环
遍历数组中的每一项,没有返回值,对原数组没有影响,不支持IE

//1 没有返回值
arr.forEach((item,index,array)=>{
    //执行代码
})
//参数:value数组中的当前项, index当前项的索引, array原始数组;
//数组中有几项,那么传递进去的匿名回调函数就需要执行几次;

map循环
map的回调函数中支持return返回值;return的是啥,相当于把数组中的这一项变为啥(并不影响原来的数组,只是相当于把原数组克隆一份,把克隆的这一份的数组中的对应项改变了)

javascript
arr.map(function(value,index,array){
  //do something
  return XXX
})

var ary = [12,23,24,42,1]; 
var res = ary.map(function (item,index,ary ) { 
    return item*10; 
}) 
console.log(res);//-->[120,230,240,420,10];  原数组拷贝了一份,并进行了修改
console.log(ary);//-->[12,23,24,42,1];  原数组并未发生变化

forof遍历
可以正确响应break、continue和return语句

for (var value of myArray) {
console.log(value);
}

filter遍历
不会改变原始数组,返回新数组

var arr = [
  { id: 1, text: 'aa', done: true },
  { id: 2, text: 'bb', done: false }
]
console.log(arr.filter(item => item.done))

// 转为ES5
arr.filter(function (item) {
  return item.done;
});
var arr = [73,84,56, 22,100]
var newArr = arr.filter(item => item>80)   //得到新数组 [84, 100]
console.log(newArr,arr)

every遍历
every()是对数组中的每一项运行给定函数,如果该函数对每一项返回true,则返回true。

var arr = [ 1, 2, 3, 4, 5, 6 ]; 
console.log( arr.every( function( item, index, array ){ 
        return item > 3; 
    })); 
false

some遍历
some()是对数组中每一项运行指定函数,如果该函数对任一项返回true,则返回true。

var arr = [ 1, 2, 3, 4, 5, 6 ]; 
   
    console.log( arr.some( function( item, index, array ){ 
        return item > 3; 
    })); 
true

总结参考:https://www.w3school.com.cn/js/index.asp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript中的数组方法用于对数组进行各种操作和转换。下面是一些常见的数组方法: 1. push():将一个或多个元素添加到数组的末尾。 2. pop():移除并返回数组的最后一个元素。 3. shift():移除并返回数组的第一个元素。 4. unshift():将一个或多个元素添加到数组的开头。 5. concat():将两个或多个数组合并为一个新数组。 6. slice():返回选定数组的一部分,不修改原始数组。 7. splice():从数组中添加、删除或替换元素。 8. indexOf():返回指定元素在数组中的第一个匹配位置的索引。 9. lastIndexOf():返回指定元素在数组中最后一个匹配位置的索引。 10. forEach():对数组的每个元素执行提供的函数。 11. map():对数组的每个元素执行提供的函数,并返回新数组。 12. filter():根据指定的条件筛选数组元素,并返回一个新数组。 13. reduce():从左到右对数组的每个元素执行提供的函数,以将其减少为单个值。 14. reduceRight():从右到左对数组的每个元素执行提供的函数,以将其减少为单个值。 15. sort():对数组的元素进行排序。 16. reverse():颠倒数组的元素顺序。 17. join():将数组的所有元素连接成一个字符串。 18. includes():判断数组是否包含某个元素。 19. every():判断数组的每个元素是否都满足指定条件。 20. some():判断数组的某个元素是否满足指定条件。 以上是一些常见的数组方法。你可以根据需要选择适合的方法来操作和处理数组

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值