js数组的常用方法
来源:互联网 发布:兰芝淘宝旗舰店 编辑:程序博客网 时间:2024/04/27 09:25
定义
数组可以用new的方式也可以用字面量来定义。
var arr1 = new Array();
var arr2 = [1, 2, 'aa', new Date(), true];
//alert(arr1.length);
//alert(arr2); //会自动转换成string,效果等同于 arr2.toString()
添加和移除元素
从尾部:
//push和pop
var arr3 = [new Date(), false];
var res = arr3.push(1, 2, true); //push方法像数组中追加元素(返回值为新数组长度)
alert(arr3); //arr3中追加了1, 2, true三个元素
alert(res); //返回的是新数组的长度 5
var res2 = arr3.pop(); //从数据尾部移除一个元素,返回值为移除的元素
alert(arr3);
alert(res2); //返回值为移除的元素
从头部:
//shift和unshift
var arr4 = [1, 2, true, new Date()];
var res4 = arr4.shift(); //从头部移除一个元素(返回移除的元素)
var res5 = arr4.unshift(10, false); //从头部插入多个元素,返回新数组元素个数
alert(res5);
截取
/*
splice和slice(截取相关),返回删除的元素
splice方法操作数组本身
slice不操作数组本身
*/
var arr5 = [1, 2, 3, 4, 5];
//splice(起始位置,截取的个数,第三个参数及以后表示:插入到截取位置的新元素)
var res6 = arr5.splice(1, 2, 3, 4, 5);
//alert(arr5); //1,3,4,5,4,5
//alert(res6); //返回删除的元素 2,3
var arr6 = [1, 2, 3, 4, 5];
var res7 = arr6.slice(2, 4); //左闭右开,语法arrayObject.slice(start,end)
//alert(arr6); //和原来一样不变
//alert(res7); //返回删除的元素 3,4
拼接
concat() 方法用于连接两个或多个数组。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
语法:arrayObject.concat(arrayX,arrayX,......,arrayX)
//concat 和 join 都不更改原数组
var arr7 = [1, 2, 3];
var arr8 = [true, 4, 5];
var res8 = arr7.concat(arr8); //合并操作,不操作原数组本身
//alert(res8); //返回合并后的数组
var res9 = arr7.join("-"); //join() 方法用于把数组中的所有元素放入一个字符串。不传参数使用逗号分隔
//alert(res9); //1-2-3
排序
语法:arrayObject.sort(sortby),sortby可选,规定排序顺序,必须是函数。
/*
sort正序排序
reverse 倒序排序(按照原来的顺序反转)
*/
var arr9 = [1, 2, 4, 3, 5];
var arr10 = [1, 10, 2, 5, 3];
arr10.sort(); // 是按照字母来排序的 1,10,2,3,5
arr9.reverse(); //按照原来的顺序反转
document.write(arr10 + "<br />");
默认的sort是按照字母排序的,这样 10就会排在2的前面。
我们需要自定义个比较函数作为参数,实现按数字大小排序。
如下:
function sortNumber(a, b) {
return a - b
}
var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"
//document.write(arr + "<br />") // 10,5,40,25,1000,1
//document.write(arr.sort(sortNumber)) // 1,5,10,25,40,1000
说明:
比较函数sortNumber(a, b) 具有两个参数 a 和 b,返回一个用于说明这两个值的相对顺序的数字。其返回值如下:
若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。
ECMAScript5 新特性
/* ECMAScript5 数组新特性补充
位置方法:indexOf lastIndexOf
迭代方法:every filter forEach some map
缩小方法:reduce reduceRight
*/
var arr = [1, 2, 3, 4, 2, 1];
//位置方法:indexOf lastIndexOf 一个参数,表示要搜寻的元素
var index=arr.indexOf(2);
//document.write(index);
//两个参数(要搜寻的元素,起始位置)
var index = arr.indexOf(2, 2);
document.write(index);
//lastIndexOf,用法完全一样,只不过从尾部向前搜
var index = arr.lastIndexOf(2, 4);
document.write(index);
//迭代方法:every filter forEach some map
//every, 与运算,全是true为true
var res = arr.every(function(item, index, array) {
return item > 0;
})
//some,或运算,有一个true返回true
var res = arr.some(function (item, index, array) {
return item > 3;
})
//document.write(res);
//filter把过滤后的结果返回
var res = arr.filter(function (item, index, array) {
return item > 2;
})
//forEach,遍历每一项执行方法
arr.forEach(function (item, index, array) {
//document.write(item+"<br/>");
})
//map, 对元素每一项执行方法,把新的结果返回
var res= arr.map(function (item, index, array) {
return item * 2;
})
//左结合和右结合方法:reduce reduceRight
var res = arr.reduce(function (prev,cur,index,array) {
return prev + cur;
})
//document.write(res);
- js数组常用的方法
- js数组的常用方法
- js数组的常用方法
- js常用数组方法
- js数组常用方法
- js数组常用方法
- Js数组常用方法
- JS数组常用方法
- js数组常用方法
- js数组常用方法
- JS数组常用方法
- JS数组的几个常用方法
- JS数组的常用方法总结
- JS数组的一些常用方法
- js中数组的常用方法
- js数组操作的常用方法
- JS数组的常用方法总结
- js 合并两个 数组的常用方法
- jdk1.8中的filter应用
- ubuntu 14.04 LTS软件中心闪退
- Java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader 解决方案
- 相机标定遇到无法打开源文件“cvut.h”解决之道
- android:getSystemService详解
- js数组的常用方法
- Leetcode #167 Two Sum II
- extjs 6.2 熟悉开发环境 hello world
- Vulkan编程指南翻译 第四章 队列和命令 第5节 复制压缩图像数据
- 关于phpMyAdmin默认安装漏洞的学习笔记
- [BZOJ1441]Min(数论)
- iBET Online Casino Bonus Poker Game Card Lucky Draw(iBET, iBET Online Casino)
- hadoop第二坑 fs
- C语言程序现代设计方法---第12章:指针和数组