JavaScript原生数组Array常用方法
前端之家收集整理的这篇文章主要介绍了
JavaScript原生数组Array常用方法,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
push方法和pop方法,可以使数组的行为类似于栈,先进后出,并且推入和弹出操作只发生在一端.
push方法可以接收一个或多个参数,把它们追加到数组末尾,并返回修改后数组的长度.
temp = arr.push('g','h');
console.info('temp: ' + temp); // temp: 8
console.info(arr); // ["a","f","g","h"]
合并两个数组
我们可以通过Array.prototype.push.apply()来合并两个数组,示例如下:
pop方法是将数组的最后一项移除,将数组长度减1,并返回移除的项.
如果在一个空数组上使用pop方法,则返回undefined
队列的访问规则是先进先出,并且队尾添加项,队头移除项. push方法和shift方法结合使用,就可以像操作队列一样操作数组.
shift方法
shift方法将移除数组的第一项,'e'];
var temp = arr.shift();
console.info('temp: ' + temp); // temp: a
console.info('length: ' + arr.length); // length: 4
unshift方法
相反地,还有一个unshift方法,它的用途与shift方法相反
unshift也可以在接收一个或多个参数,把它们依次添加到数组的前端,'e'];
var temp = arr.unshift('x','z');
console.info('temp: ' + temp); // temp: 8
console.info(arr); // ["x","z","a","e"]
sort方法和reverse方法
sort方法和reverse方法是可以直接用来重排序的两个方法.
其中,reverse方法是用来反转数组的.
关于sort方法,默认情况下,它是对数组的每一项进行升序排列,即最小的值在前面. 但sort方法会调用toString方法将每一项转成字符串进行比较(字符串通过Unicode位点进行排序),那么这种比较方案在多数情况下并不是最佳方案. 例如:
arr = [1,10,20,25,30];
arr.sort();
console.info(arr); // [1,30,5]
因此,sort方法可以接收一个比较函数作为参数,由我们来决定排序的规则. 比较函数接收两个参数,如果第一个参数小于第二个参数(即第一个参数应在第二个参数之前)则返回一个负数,如果两个参数相等则返回0,如果第一个参数大于第二个参数则返回一个正数,例如:
value2) {
return 1;
} else {
return 0;
}
});
console.info(arr); // [1,30]
concat方法
concat方法可以将多个数组合并成一个新的数组. concat可以接收的参数可以是数组,也可以是非数组值.
concat方法并不操作原数组,而是新创建一个数组,然后将调用它的对象中的每一项以及参数中的每一项或非数组参数依次放入新数组中,并且返回这个新数组.
concat方法并不操作调用它的数组本身,也不操作各参数数组,而是将它们的每个元素拷贝一份放到新创建的数组中. 而拷贝的过程,对于对象类型来说,是将对象引用复制一份放到新数组中,而对于基本类型来说,是将其值放到新数组中.
slice方法
slice方法可以基于源数组中的部分元素,对其进行浅拷贝,返回包括从开始到结束(不包括结束位置)位置的元素的新数组.
从示例中可以看出:
- slice方法并没有操作原数组,而是创建了一个新的数组.
- 当没有传参数给slice方法时,则返回从索引0开始拷贝的新数组.
- 传入一个参数,如:arr.slice(1),表示从索引1位置开始拷贝,一直到原数组的最后一个元素.
- 传入两个参数,如:arr.slice(1,2),一直拷贝到位置2但不包括位置2上的元素.
参数如果为负数,表示从数组最后面的元素可以算起.
slice方法同样不操作调用它的数组本身,而是将原数组的每个元素拷贝一份放到新创建的数组中. 而拷贝的过程,也于concat方法相同.
splice方法
splice方法可以用途删除或修改数组元素. 它有如下几种用法:
删除:
当给splice方法中传入一个或两个参数时,就可以从数组中删除任意元素.
传入一个参数: 要删除的的第一个元素的位置,此时将会删除从要删除的第一个元素的位置起,后面的所有元素.
传入两个参数: 要删除的第一个元素的位置和要删除的项数,
返回值均为删除的元素组成的数组,例如:
arr = ['a','e'];
temp = arr.splice(2,"e"]
console.info(temp); // ["c","d"]
插入:
使用splice方法可以向数组的指定位置插入任务数量的元素,此时需要提供三个参数: 起始位置(要插入的位置),0(表示要删除的项数,0为不删除),要插入的元素,如果要插入多个元素可以添加更多的参数,'e'];
var temp = arr.splice(2,'x','z');
console.info(arr); // ["a","e"]
console.info(temp); // [],并没有删除元素