JavaScript有关数组的方法总结

JavaScript有关数组的方法总结

1.数组添加push(),向数组的末尾添加一个或多个元素,并返回新数组的长度。

var arr=[1,2,3];
arr.push(4,5);
arr.forEach(function(index)
{
    alert(index);//1,2,3,4,5
});
alert(arr.length);//5

2.删除数组的方法,pop()从尾部弹出,并返回最后一个元素。

var arr=[1,2,3];
alert(arr.pop());//3
alert(arr.length);//2

shift()从头部弹出,并返回第一个元素

var arr=[1,2,3];
alert(arr.shift());//3
alert(arr.length);//2

3.splice()方法既可以从指定位置删除数组元素,也可以从指定位置插入数组元素和替换元素。返回新的数组。
(1) 删除,可以删除任意数量的项,只需要指定2个参数:要删除的起始位置和要删除项的项数。

var arr=[1,2,3,4,5];
arr.splice(1,2);
alert(arr);//1,4,5

(2) 插入,可以向指定位置插入任意数量的项,只需要提供3个参数:插入起始位置、0(要删除的项数)和要插入的项。 如果要插入多个项,可以再传入第四、第五,一直任意多个项。

var arr=[1,2,3,4,5];
arr.splice(1,0,7);//从在第一个位置插入7
alert(arr);//1,7,2,3,4,5

(3) 替换,即在删除的同时插入元素,可以指向指定位置插入任意数量的项,且同时删除任意数量的项,只需要指定3个指定参数:第一个参数为起始位置、第二个参数为要删除的项数、后面的参数为要插入的任意数量。 若插入的项数和删除的项数相等相当于则替换。

var arr=[1,2,3,4,5];
arr.splice(1,2,6,7);
alert(arr);//1,6,7,4,5

4.concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

var arr=[1,2,3];
var str=arr.concat(4,5);
alert(str);//1,2,3,4,5

5 join() 方法用于把数组中的所有元素放入一个字符串。语法为arrayObject.join(str),参数str为分割符号

var arr=['a','b','c','d'];
var str=arr.join('-');
alert(str);//a-b-c-d
var str=arr.join('/');
alert(str);//a/b/c/d

6.split()方法,将一个字符串转换为数组.语法为arrayObject.split(first,second);第一个参数是必需的,为指定分割的位置;第二个参数为返回数组的最大长度

var arr='a b c d';
var str=arr.split(' ',2);
alert(str);//a,b

7.slice()方法可从已有的数组中返回选定的元素,语法形式arrayObject.slice(start,end);第一个参数为起始位置,第二个参数为结束位置。

var arr=['a','b','c','d'];
var str=arr.slice(1,3);
alert(str);//b,c

slice()的另外一种用法是将类数组对象转换为真正的数组。

console.log(Array.prototype.slice.apply({0:1,1:2,length:2}));//[1,2]

8.数组排序sort()方法,该方法只对字符串操作,如果是数字则要先转换成字符串,排序是按照字符编码的顺序进行的。

(1) 字符串排序:

var arr=['1','10','5','7','2'];
console.log(arr.sort());//["1", "10", "2", "5", "7"]

(2)对数字进行排序,则要先建立一个排序函数

var arr=['1','10','5','7','2'];
function sun(a,b){
    return a-b;
}
console.log(arr.sort(sun));//["1", "2", "5", "7", "10"]
console.log(arr);//["1", "2", "5", "7", "10"]

需要注意的是:sort()是在在原数组上进行排序,不生成副本,即排序完成后,原数组里面的顺序也已经改变了。
9.数组反转reserve()。

var arr=['a','b','c','d'];
console.log(arr.reverse());//["d", "c", "b", "a"]
console.log(arr);//["d", "c", "b", "a"]

10.数组的遍历forEach()方法。语法:array.forEach(function(currentValue, index, arr), thisValue);currentValue必需,为当前元素;index为当前元素的索引,可选;arr当前元素所属的数组对象,可选。thisValue,可选。传递给函数的值一般用 “this” 值。如果这个参数为空, “undefined” 会传递给 “this” 值。

var arr=['a','b','c','d','e'];
function show(value,index){
        document.write('value:'+value+' ');
        document.write('index:'+index);
        document.write('<br/>');
    }
    arr.forEach(show);
//value:a index:0
//value:b index:1
//value:c index:2
//value:d index:3
//value:e index:4

thisValue的应用:

var arr=['a','b','c','d','e'];
    var obj={
        show:function(value,index){
                document.write('array1:'+value+' ');
                document.write('index:'+index);
                document.write('<br/>');
            }
    }
    arr.forEach(function(value,index){
        this.show(value,index);
    },obj);
//value:a index:0
//value:b index:1
//value:c index:2
//value:d index:3
//value:e index:4

另外数组的遍历不要用for…in方法。
关于一些数组操作的问题可参考这篇文章 [ref]:https://segmentfault.com/a/1190000012463583

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值