js数组操作
2017-09-29 00:00
204 查看
1.数组的创建
var numbers = []; var numbers = [1,2,3,4,5]; var numbers = new Array(); var numbers = new Array(1,2,3,4,5); var numbers = new Array(5);
2.数组的读写
var numbers = [ ]; for (var i = 0; i < 5; i++) { numbers[i] = i; } /*-------------分割线-----------*/ var numbers = [1,2,3,4,5]; var sum = 0; for (var i = 0; i < numbers.length; i++) { sum += numbers[i]; }
3.数组的添加
var numbers = [1,2,3,4,5]; numbers.push(6);//数组的末尾添加一个元素 var numbers = [1,2,3,4,5]; numbers[numbers.length] = 6;//也可以用数组的长度属性为数组添加元素 /*-----------------------分割线-------------------*/ var numbers = [2,3,4,5,6]; numbers.unshift(1);//数组的开头添加一个元素 var numbers = [2,3,4,5,6]; var n = numbers.length; for (var i = n; i >= 0; --i) { numbers[i] = numbers[i-1]; } numbers[0] = 1;//不利用数组提供的方法,自己定义一个方法
4.数组的删除
var numbers = [1,2,3,4,5]; numbers.pop();//删除数组的末尾元素 var numbers = [1,2,3,4,5]; numbers.shift();//删除数组的开头元素
5.从数组中间位置添加和删除元素
/* splice()用法 1.起始索引(也就是你希望开始添加元素的地方) 2.需要删除的元素个数(添加元素时该参数设为0) 3.需要添加进数组的元素(不必组织成一个数组,可以是任意的元素序列) * */ var numbers = [1,2,3,4,5]; var newElements = [4,5,6]; numbers.splice(3,0,newElements);//第三个位置以后添加4,5,6 numbers.splice(3,0,4,5,6);//第三个位置以后添加4,5,6 numbers.splice(3,4);//第三个位置以后删除四个元素
6.数组的排序
var numbers = [1,2,3,4,5]; numbers.reverse();//5,4,3,2,1将数组中的元素的顺序进行翻转 var names = ["David","Mike","Cynthia","Bryan"]; names.sort();//Bryan,Cynthia,David,Mike.字符串类型的数组排序,sort方法非常好使 var num = [3,1,2,100,4,200]; num.sort();//1,100,2,200,3,4;sort方法是按照字典进行排序的,因此他假定元素都是字符串类型 /* 对于数字类型,该函数可以是一个简单的相减操作,从一个数字中减去另一个数字。如果结果为负, 那么被减数小于减数;如果结果为0,那么被减数和减数相等;如果结果为正,那么被减数大于减数。*/ function compare(num1,num2) { return num1 - num2; } num.sort(compare);
7.数组的拷贝
var numbers = [1,2,3,4,5]; var numbersOther = numbers; //但是把一个数组赋值给另一个数组时,只是为被赋值的数组添加了一个新的引用。 //当你通过原引用修改了数组的值,另一个引用也会感知到这个变化。如下所示(这种行为称为浅复制) numbers[0] = 100; console.log(numbersOther[0]);//100 //深拷贝,将原数组中的每一个元素都复制一份到新数组中。 function copy(arr1, arr2) { for (var i = 0; i < arr1.length; ++i) { arr2[i] = arr1[i]; } } var numbers = [1,2,3,4,5]; var numbersOther = []; copy(numbers,numbersOther); numbers[0] = 100; console.log(numbersOther[0]);//1
8.字符串的数组化,数组的字符串化
var sentence = "A B C D E"; var words = sentence.split(" "); console.log(words);//[A,B,C,D,E]; var words = [A,B,C,D,E]; var sentence = words.join("-"); console.log(sentence);//"A-B-C-D-E";