数组对象
1 .join()
.join()将数组连接成字符串(可指定分割符)
var arrs = [0, 1, 2, 3, 4, 5, 6]; var joinArr = arrs.join(); var joinArr1 = arrs.join('='); console.log(joinArr); //默认用 ‘,’隔开(返回一个字符串) console.log(joinArr1); //可指定分隔符号(返回一个字符串)
2 .concat()
.concat()连接两个数组(不会改变原数组)
var arr = ['aa', 'bb', 'cc', 'dd']; var arr2 = [1, 2, 3, 4, 5]; var concatArr = arr.concat(arr2); console.log(concatArr);
3 .unshift()
.concat()连接两个数组(不会改变原数组)
var arr = ['aa', 'bb', 'cc', 'dd']; arr.unshift(0); console.log(arr);
4 .shift()
.shift()数组开头删除一个后的数组(改变原数组)
var arr = ['aa', 'bb', 'cc', 'dd']; var shiftOne = arr.shift(); console.log(shiftOne); //返回数组开头第一个; console.log(arr); //数组开头删除一个后的数组(改变原数组)
5 .push()
.push()在数组末尾添加(改变原数组)
var arrPush = arr.push('ee', 'ff'); console.log(arr);
6 .pop()
.pop()数组结尾删除一个后的数组(改变原数组)
var popOne = arr.pop(); console.log(popOne); //.pop()返回数组最后一个 console.log(arr);//.pop()数组结尾删除一个后的数组(改变原数组)
7 .reverse()
.reverse()将数组顺序反转(改变原数组)
arr.reverse();
console.log(arr);
8 .sort()
案例1: 数字排序
var arr1_number = [1, 4, 7, 3, 8, 7, 9, 0, 3, 2]; var sortarr1_number = arr1_number.sort((a, b) => { return a - b }) console.log(arr1_number); //原数组 console.log(sortarr1_number);
注意:使用 sort 排序,会改变原数组。
如果不想破坏原数组可以使用.concat() 或 .slice(0) 原数组复制一份。
如下:
案例2: 字母排序
var arr1_str = ['z', 'a', 'f', 'g', 'R', 'H', 'j', 'W', 'Z']; //var arr1_str_copy = arr1_str.concat(); //这里相当于复制了一份数组; var arr1_str_copy = arr1_str.slice(0); //这里相当于复制了一份数组; arr1_str_copy.sort(function(s, t) { var a = s.toLowerCase(); var b = t.toLowerCase(); if(a < b) return -1; if(a > b) return 1; return 0; }) console.log(arr1_str); //原始数组 console.log(arr1_str_copy); //排序后的数组
案例3: 数组对象中按年龄大小排序
var studentArr = [{ 'name': '张三', age: 26 }, { 'name': '李四', age: 12 }, { 'name': '王五', age: 37 }, { 'name': '赵六', age: 4 }]; studentArr.sort((a, b) => { return b.age - a.age }) console.log(studentArr) // [{'name': '王五', age: 37},{'name': '张三', age: 26},{'name': '李四', age: 12},{'name': '赵六', age: 4}]
9 .slice()
var arrs1 = [0, 1, 2, 3, 4, 5, 6]; var sliceArr = arrs1.slice(1); var sliceArr1 = arrs1.slice(1, 4); var sliceArr2 = arrs1.slice(-3); console.log(sliceArr); //.slice(N)按可指定位置切割数组,一个参数是从第N个开始切到最后(返回一个新数组) console.log(sliceArr1); //.slice(x,y)按可指定位置切割数组,两个参数是从第个x个切到第个y个(注:不包含第y个)(返回一个新数组,不改变原数组) console.log(sliceArr2); //.slice(-3)按可指定位置切割数组,一个参数是负数,例如从倒数第三个开始切到最后(返回一个新数组,不改变原数组)
10 .splice()
第一个参数(必需):整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
第二个参数(必需):要删除的项目数量。如果设置为 0,则不会删除项目。
第三个参数(可选):向数组添加的新项目。
var arrs2 = [0, 1, 2, 3, 4, 5, 6]; arrs2.splice(1, 2, 99); console.log(arrs2); //.splice(1,2,99) 第一个参数:添加/删除项目的位置(1开始)第二个参数:添加/删除项目的数量(2个)第三个参数:数组添加的新项目(99)(改变原数组)