JavaScript数组有哪些数据操作和排序函数?完整的数组相关函数说明和使用实例。
JavaScript对数组的操作可分为四大类,数组基本元素的操作(增删改查)、数组的宏观操作(组合或截取)、数组排序和数组遍历。
1、数组遍历JS数组遍历可参考:JavaScript数组遍历的四种方式。
2、数组的增删改查
// 数组的增删改查
var numbers = [1, 7, 8, 9, 5, 1];
// 往数组添加数据
numbers.push(10);
// 从尾部添加数据
numbers.unshift(20);
// 从头部添加数据
console.log(numbers);
// 输出:20, 1, 7, 8, 9, 5, 1, 10// 从数组中删除数据
var tail = numbers.pop();
// 从尾部移除数据,返回值为已移除的数据
console.log(tail);
// => 10
var value = http://www.srcmini.com/numbers.shift();
// 从头部移除数据,返回值为已移除的数据
console.log(value);
// => 20
console.log(numbers);
// 输出:1, 7, 8, 9, 5, 1// 修改数组和访问数组的元素
numbers[0] = 9;
console.log(numbers[0]);
// 9
3、数组的截取和组合数组的slice()函数用于截取数组指定位置的元素,返回新的数组,该函数一共有两个参数:第一个是起始位置,第二个是结束位置。splice()函数用于删除和添加元素,第一个参数为删除元素的其实位置,第二个是删除元素的个数,之后的参数为添加到数组的元素列表,具体使用如下:
// slice()数组截取函数的使用,不影响原数组
var newArray = numbers.slice(2, 5);
console.log(newArray);
// 输出:8, 9, 5// splice()数组删除和添加函数的使用,对原数组进行操作
numbers.splice(1, 2, 40, 50);
// numbers数组从索引1开始删除2个元素,并从索引1开始添加40,50
console.log(numbers);
// 输出:9, 40, 50, 9, 5, 1
数组的组合操作使用concat()函数和join()函数,使用如下:
// concat()函数用于向数组追加元素,不影响原数组,返回新数组
var _array = numbers.concat(70, 80);
console.log(_array);
// 输出:9, 40, 50, 9, 5, 1, 70, 80// join()函数使用指定的连接符连接数组元素,并转为字符串
console.log(_array.join("+"));
// 输出:9+40+50+9+5+1+70+80
4、数组排序【JavaScript数组有哪些数据操作和排序函数(完整的数组相关函数说明和使用实例)】JavaScript的数组排序使用sort()函数和reverse()函数,前者是正常排序后者是逆向排序,排序默认依据是使用英语字母的方式排序,将字符转为ASCII码进行比较,并且排序后会影响原数组,例子如下:
// 默认使用比较ASCII码数值的方式进行排序
var words = ["abc", "join", "concat", "sort"];
console.log(words.sort());
// "abc", "concat", "join", "sort"
console.log(words);
// "abc", "concat", "join", "sort"
console.log(words.reverse());
// "sort", "join", "concat", "abc"
console.log(words);
// "sort", "join", "concat", "abc"// JavaScript自定义数组排序
words.sort(function(a, b){
if(a <
b)
return 1;
else if(a > b)
return -1;
else
return;
});
推荐阅读
- JavaScript原型链和继承原理分析和实例详解(二)(继承和原型链)
- JavaScript中call和apply有什么区别和作用()
- JavaScript中如何移除对象的属性或方法(手动释放内存有哪些方式?)
- JavaScript数组遍历有哪些方式(如何进行数值遍历?哪种方式更好?)
- 使用JavaScript或jQuery如何实现滚动到页面顶部或底部()
- 如何将使用JavaScript请求到的JSON数据根据时间进行重新排序()
- 如何实现websocket长连接发送消息到前端()
- JavaScript的变量作用域是什么(如何理解变量作用域?)
- 如何使用CSS使div垂直滚动()