数组查询
slice
数组的查询
参数: slice(n,m) 从索引n开始找到索引m处(不包含m)
返回值: 把找到的部分以一个新数组返回
原来数组不变
slice(n) 从索引n找到末尾
slice(0)或slice() 数组克隆,克隆一份和原来数组一模一样的新数组
slice()支持负数索引,如果传递的索引为负数,浏览器解析的时候按照 总长度+负数索引来处理的
var ary = [12,23,34,45,56,67,78,89,90];var ary1 = ary.slice(3,8)console.log(ary) // -> [12, 23, 34, 45, 56, 67, 78, 89, 90]console.log(ary1) // -> [45, 56, 67, 78, 89]
数组拼接
concat
将多个数组拼接在一起
参数: 要拼接的内容(把要拼接的数组放在原数组后面),可以是一个数组,也可以是一些数据值
返回值: 拼接后的新数组
原数组不改变
concat() 什么都不拼接相当于把 原数组克隆一个一模一样的新数组
var ary = [12,23,34] ary.concat([45,56],'lilei') // -> [12, 23, 34, 45, 56, "lilei"]console.log(ary) // -> [12, 23, 34]
数组转换为字符串
toString
把数组转换为字符串(转换后的字符串以逗号分隔每一项)
参数: 无
返回值: 转换的字符串
原有数组不变
var ary = [12,23,34]; ary.toString() // -> "12,23,34"console.log(ary) // -> [12, 23, 34]
join
把数组按照指定的分割符转换为字符串,和字符串中的split相对应
参数: 指定的连接符
返回值: 连接后的字符串
原数组不变
var ary = [12,23,34]; ary.join(" ") // -> "12 23 34"ary.join("+") // -> "12+23+34"console.log(ary) // -> [12,23,34]
// 一直数组中的每一项, 想实现数组求和// 1. 利用循环var total = 0;for(var i=0;i<ary.length;i++){ total += ary[i] }// 2. 利用joinvar total = eval(ary.join('+')); // -> 把字符串变为js表达式执行
实现数组中的每一项的排序和排列
reverse
把数组中的每一项倒过来排列
参数: 无
返回值: 排列后的新数组
原来数组改变
var ary = [1,23,2,34,21]; ary.reverse(); // -> [21, 34, 2, 23, 1]console.log(ary) // -> [21, 34, 2, 23, 1]
sort
实现数组的排序
参数: 无或者回调函数
返回值: 排序后的数组
原有数组改变不传参数的情况下,可以给10以内的数字进行升序排列, 但是超过10的就无法处理了(多位数只识别第一位)
var ary = [1,23,2,34,21]; ary.sort(); // -> [1, 2, 21, 23, 34]console.log(ary) // -> [1, 2, 21, 23, 34]var ary = [1,23,2,34,21,12]; ary.sort(); // -> [1, 12, 2, 21, 23, 34] // -> 12 排在了2的前面,说明sort并不是按数字大小排序,而是只看数字第一位console.log(ary) // -> [1, 12, 2, 21, 23, 34]// -> 从小到大排序var ary = [1,23,2,34,21,12]; ary.sort(function(a,b){return a-b}); // -> [1, 2, 12, 21, 23, 34]// -> 12 排在了2的前面,说明sort并不是按数字大小排序,而是只看数字第一位console.log(ary) // -> [1, 2, 12, 21, 23, 34]// -> 从大到小排序var ary = [1,23,2,34,21,12]; ary.sort(function(a,b){return b-a}); // -> [34, 23, 21, 12, 2, 1]// -> 12 排在了2的前面,说明sort并不是按数字大小排序,而是只看数字第一位console.log(ary) // -> [34, 23, 21, 12, 2, 1]
作者:uplyw
链接:https://www.jianshu.com/p/c402cbe92eb4