JavaScript Array返回值以及是否改变原数组。
1. push:最后一位新增;//改变原数组
1 arr.push("123"); 2 返回值是数组的长度; 3 var b = [1, 2, 3, 4] 4 console.log("没改变之前的数组长度" + b.length); 5 //4 6 var n = b.push(123); 7 console.log(n); 8 //5
2. unshift:第一位新增;//改变原数组
1 arr.unshift("123"); 2 返回值是数组的长度; 3 var b = [1, 2, 3, 4] 4 console.log("没改变之前的数组长度" + b.length); 5 //4 6 var n = b.unshift(123); 7 console.log(n); 8 //5
3. pop:最后一位删除;//改变原数组
1 arr.pop(); 2 返回值是被删除的值; 3 var b = [1, 2, 3, 4, 5] 4 var n = b.pop(); 5 console.log(n); 6 //5
4. shift:第一位删除;//改变原数组
1 arr.shift(); 2 返回的是被删除的值; 3 var b = ["a",1, 2, 3, 4, 5] 4 var n = b.shift(); 5 console.log(n); 6 //a
5. splice:替换;//改变原数组
1 arr.splice(2,2,"html"); //从length为2开始,删除2个数,添加"html"; 2 返回值是被删除的值; 3 var b = ["a", 1, 2, 3, 4, 5] 4 var n = b.splice(2, 2, "b"); 5 console.log(n); 6 //2,3 7
6. sort:默认会按照字符的排序规则,升序;//逐位比较//改变原数组
1 //需要传入回调函数,在回调函数身上右接收两个参数,返回这两个参数的差,可以按照数值的排序规则进行排序
第一种: 2 arr.sort(function(a,b){ 3 return b-a; 4 }); 5 console.log(arr);、
第二种: //11.8新增箭头函数写法:
arr.sort((a,b)=>a-b)
6 返回值是排序后的数组; 7 var b = ["a", 1, 2, 3, 4, 5] 8 b.sort(function(a, b) { 9 return b - a; 10 }); 11 console.log(b); 12 //[ 5, 4, 3, 2, 1, "a" ]
7. slice:截取,从第一个参数位,截取到第二个参数位的前一个;-1//不改变原数组
1 //slice不会改变原数组 2 返回值是截取的值; 3 var b = ["a", 1, 2, 3, 4, 5] 4 var n = b.slice(2, 4); 5 console.log(n); 6 //[ 2, 3 ] 7 console.log(b); 8 //[ "a", 1, 2, 3, 4, 5 ] 9
8. reverse:颠倒数组;//改变原数组
1 arr.reverse(); 2 返回值是颠倒后的数组; 3 var b = ["a", 1, 2, 3, 4, 5] 4 var n = b.reverse(); 5 console.log(n); 6 //[ 5, 4, 3, 2, 1, "a" ] 7 console.log(b); 8 //[ 5, 4, 3, 2, 1, "a" ]
9. concat():连接两个或多个数组。//不改变数组
1 arr.concat(b); 2 返回值是新数组; 3 var a = [1, 2, 3, 4]; 4 var b = [4, 5, 6, 7]; 5 var n = a.concat(b); 6 console.log(n); 7 //[ 1, 2, 3, 4, 4, 5, 6, 7 ] 8 console.log(a); 9 //[ 1, 2, 3, 4 ]