javascript数组操作方法

定义数组

var arr = [];

var arr = new Array();

var arr = new Array(10); 创建一个长度为10的数组

数组操作方法

  1. join():讲数组中所有元素转化为字符串并连接在一起,可以指定一个可选的字符串来分隔数组的各个元素,并不会改变原数组

    var arr = [1,2,3];

console.log(arr.join("-")); //1-2-3

console.log(typeof arr.join("-")); //string

console.log(arr);   //[1,2,3]

2.  reserve():将数组中的元素颠倒顺序,返回逆序数组,改变原数组

    var arr = [1,2,3];

console.log(arr.reverse());  //[3,2,1]

3.  sort():将数组中的元素排序,并返回排序后的数组,改变原数组(数字根据第一个数字由小到大,字母根据字母表顺序大写在小写前,undefined在最尾部)

var a = [1,3,2];

console.log(a.sort());  //[1,2,3]

console.log(a);         //[1,2,3]

var arr = ["a","d","c"];

console.log(arr.sort());   //["a","c","d"]

var arr = [-3,0,1];

console.log(arr.sort());  //[-3,0,1]

sort()排序数字  负数 0 正数

sort()在进行排序时会调用toString()方法,然后根据ASCII码进行比较

用sort()对数字进行升序排列

var arr = [0,2,1,0.5];

console.log(arr.sort(function(a,b){

return a-b;

));

用sort()对数字进行降序排列

var arr = [0,2,1,0.5];

console.log(arr.sort(function(a,b){

return b-a;

}));

4. concat()创建并返回一个新数组,不改变原数组

var arr = [1,2,3];

console.log(arr.concat([1,2])); //[1,2,3,1,2]

console.log(arr); //[1,2,3]

5. slice()返回指定的子数组,俩个参数起始位置,结尾位置,只有一个参数的话默认为从开始位置到结尾

不改变原数组

   var arr = [1,2,3,4,5];

console.log(arr.slice(1,3));  //[2,3]

console.log(arr);             //[1,2,3,4,5]

6. splice()在数组中插入或删除元素的方法,改变原数组,第一个参数为起始位置,第二个为删除元素的个数,后面的参数为插入的元素

var arr = [1,2,3,4,5];

console.log(arr.splice(2,1));//[3]

console.log(arr); //[1,2,4,5]

console.log(arr.splice(2,0,3));  //[]

console.log(arr); //[1,2,3,4,5]

7. push()在数组尾部添加一个或多个元素,改变原数组->新数组新长度

   pop()将数组最后一个元素删除,改变原数组->删除的最后一个元素

   var arr = [1,2,3,4,5];

console.log(arr.push(1));

console.log(arr);

console.log(arr.pop()); //返回删除的元素

console.log(arr.pop());

8. unshift()在数组首部添加一个或多个元素,改变原数组->数组新长度

   shift()将数组第一个一个元素删除,改变原数组->删除的第一个元素

   var arr = [1,2,3,4,5];

console.log(arr.unshift(0)); //返回数组新长度

console.log(arr.shift());    //0,返回删除的第一个元素

//ECMA5新添加的数组操作方法

9. forEach() 从头到尾遍历数组,无法在所有元素都传递给调用函数之前终止遍历,有三个参数,分别为数组元素,元素索引,数组本身

var data = [1,2,3,4];

data.forEach(function(v,i,a){

console.log(a[i] = v + i); //[1,3,5,7];

});

10. map()调用数组的每个元素传递给指定函数,并返回一个数组

var arr = [1,2,3];

var data = arr.map(function(x){return x*x});

console.log(data);                  //[1,4,9]

11. filter()返回的数组元素是调用数组的一个子集,传递的函数用来进行逻辑判断

var arr = [1,2,3];

var data = arr.filter(function(x){return x < 3;});

console.log(data);  //[1,2]

12. every() some() 对数组元素应用指定函数进行判定,返回true或者false

every()相当于与,出现false,即可以停止遍历

some()相当于或,出现true,即可以停止遍历

var arr = [1,2,3,4,5];

console.log(arr.every(function(x){

console.log(x);     //输出1,出现false,停止遍历

return x%2 == 0;

}));

console.log(arr.some(function(x){

console.log(x);    //输出1 2,2时为true,停止遍历

return x%2 == 0;

}));

13. reduce() reduceRight() 使用指定的函数将数组元素进行组合,生成单个值,俩个参数,第一个为操作函数,第二个为初始值

reduce()从低索引到高索引;

reduceRight()从高索引到低索引;

var arr = [1,2,3,4,5];

console.log(arr.reduce(function(x,y){

console.log(x);

console.log(y);

return x + y;

},0));  //15

console.log(arr.reduceRight(function(x,y){

console.log(x);

console.log(y);

return x + y;

},0));   //15

14. indexOf() lastIndexOf(),返回搜索到的第一个元素索引,没有搜索到返回-1;

var arr = [1,2,3,4,5,1];

console.log(arr.indexOf(1));  //0

console.log(arr.lastIndexOf(1));  //5

console.log(arr.indexOf(10));  //-1

15. 检测数组的三种方法

typeof,instanceof,isArray(E5中新添加的)

typeof: typeof arr 若为数组返回object

instanceof: arr instanceof Array 若为数组返回true

isArray: Array.isArray(arr); 若为数组返回true

var arr = [1,2,3,4,5];

console.log(typeof arr);  //object

console.log(arr instanceof Array);  //true

console.log(Array.isArray(arr));   //true

时间: 2024-08-01 17:50:34

javascript数组操作方法的相关文章

浅谈JavaScript数组操作方法

JavaScript中数组有各种操作方法,以下通过举例来说明各种方法的使用: push 在数组最后添加一个元素 var arr=[3,4,5,6] console.log(arr) //[3, 4, 5, 6] arr.push("evenyao") //字符串需要加"",数字不加 console.log(arr) //[3, 4, 5, 6, "evenyao"] pop 把数组最后一位取出来,并返回,且原来数组发生变化 var arr=[3,

javaScript数组操作方法之 some和every

最近用到数组的两个方法,some和every,这两个方法都挺有用的,但是网上相关的说明都比较含糊,所以准备自己来写一个 some()方法用于检测数组中的元素是否满足指定条件(函数提供). some()方法会依次执行数组的每个元素: 如果有一个元素满足条件,则表达式返回true,剩下的元素不会再执行检测. 如果没有满足条件的元素,则返回false. 注意:some()不会对空数组进行检测 some()不会改变原始数组. some方法使用的时候传参形式: array.some(function(cu

JavaScript中的常用的数组操作方法

JavaScript中的常用的数组操作方法 一.concat() concat() 方法用于连接两个或多个数组.该方法不会改变现有的数组,仅会返回被连接数组的一个副本. var arr1 = [1,2,3]; var arr2 = [4,5]; var arr3 = arr1.concat(arr2); console.log(arr1); //[1, 2, 3] console.log(arr3); //[1, 2, 3, 4, 5] 二.join() join() 方法用于把数组中的所有元素

javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法

javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法 前言 在js中,数组和对象的复制假设使用=号来进行复制.那仅仅是浅拷贝. 例如以下图演示: 如上.arr的改动,会影响arr2的值,这显然在绝大多数情况下,并非我们所须要的结果. 因此,数组以及对象的深拷贝就是javascript的一个基本功了. 数组的深拷贝 条条大道通罗马,实现数组的深拷贝.是有好几种方法的.举比例如以下: for 循环实现数组的深拷贝 for循环是很好用的.假设不知道高级方法.通过for循环可以完毕我们

第七章:Javascript数组

数组是值的有序结合.每个值叫做一个元素,而每个元素在数组中都有一个位置,用数字表示,称为索引. javascript数组是无类型的:数组的元素可以是任意类型,并且同一个数组中的不同元素也可能有不同的类型.数组的元素可能是对象或其他数组,这允许创建更加复杂的数据结构,如对象的数组和数组的数组. javascript数组的索引是基本零的32位数值:第一个元素的索引为0,最大的索引为4 294 967 294(2的32次方-2),数组最大能容纳4 294 967 295个元素. javascript数

Underscore.js(JavaScript对象操作方法)

Underscore封装了常用的JavaScript对象操作方法,用于提高开发效率.(Underscore还可以被使用在Node.js运行环境.) 在学习Underscore之前,你应该先保存它的API地址,因为你将在以后经常访问它: http://documentcloud.github.com/underscore/ 从API中,你已经可以看出,Underscore没有任何复杂的结构和流程,它仅仅提供了一系列常用的函数.如果你将API中的方法从头至尾用一遍,你就会对它非常了解. 尽管如此,但

javascript数组总结

数组是一个有序的集合,javascript数组中的元素的类型可以是任意的,同一个数组不同元素之间的类型也是可以不同的.数组也是对象,有个length属性,记录数组的长度. 创建数组有两种方法: 数组直接量,var arr = [1,2,];这样会创建一个有两个元素的数组.之所以不是3个元素,是因为最后一个逗号是可选的. 另外一种是调用构造函数:    var arr = new Array(10);这样会创建一个具有10个元素的数组:或者          var arr = new Array

JavaScript 数组遍历方法的对比

前言 JavaScript 发展至今已经发展出多种数组的循环遍历的方法,不同的遍历方法运行起来那个比较快,不同循环方法使用在那些场景,下面将进行比较: 各种数组遍历的方法 for 语句 代码: var arr = [1,2,4,6] for(var i = 0, len = arr.length; i < len; i++){ console.log(arr[i]) } 复制代码 这是标准for循环的写法也是最传统的语句,字符串也支持,定义一个变量i作为索引,以跟踪访问的位置,len是数组的长度

javascript 数组的深度复制

javascript 数组的深度复制 一般情况下,使用 "=" 可以实现赋值.但对于数组.对象.函数等这些引用类型的数据,这个符号就不好使了. 1. 数组的简单复制 1.1 简单遍历 最简单也最基础的方式,自然是循环处理.示例: function array_copy(arr) { var out = [], i, len; if (out[i] instanceof Array === false){ return arr; } for (i = 0, len = arr.lengt