js笔记让前端飞程序员

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

2018-05-14  本文已影响26人  uplyw

数组查询

数组的查询
参数: 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() 什么都不拼接相当于把 原数组克隆一个一模一样的新数组

var ary = [12,23,34]
ary.concat([45,56],'lilei') // -> [12, 23, 34, 45, 56, "lilei"]
console.log(ary) // -> [12, 23, 34]

数组转换为字符串

把数组转换为字符串(转换后的字符串以逗号分隔每一项)
参数: 无
返回值: 转换的字符串
原有数组不变

var ary = [12,23,34];
ary.toString() // -> "12,23,34"
console.log(ary) // -> [12, 23, 34]

把数组按照指定的分割符转换为字符串,和字符串中的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. 利用join
var total = eval(ary.join('+')); // -> 把字符串变为js表达式执行

实现数组中的每一项的排序和排列

把数组中的每一项倒过来排列
参数: 无
返回值: 排列后的新数组
原来数组改变

var ary = [1,23,2,34,21];
ary.reverse();  // -> [21, 34, 2, 23, 1]
console.log(ary) // -> [21, 34, 2, 23, 1]

实现数组的排序
参数: 无或者回调函数
返回值: 排序后的数组
原有数组改变

不传参数的情况下,可以给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]
上一篇下一篇

猜你喜欢

热点阅读