手记

js笔记二十之Array数组的查询,拼接,转字符串,排列(序)

数组查询

  • slice

数组的查询
参数: slice(n,m) 从索引n开始找到索引m处(不包含m)
返回值: 把找到的部分以一个新数组返回
原来数组不变

  1. slice(n) 从索引n找到末尾

  2. slice(0)或slice() 数组克隆,克隆一份和原来数组一模一样的新数组

  3. 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


0人推荐
随时随地看视频
慕课网APP