數(shù)組查詢
- slice
數(shù)組的查詢
參數(shù): slice(n,m) 從索引n開始找到索引m處(不包含m)
返回值: 把找到的部分以一個新數(shù)組返回
原來數(shù)組不變
- slice(n) 從索引n找到末尾
- slice(0)或slice() 數(shù)組克隆,克隆一份和原來數(shù)組一模一樣的新數(shù)組
- slice()支持負數(shù)索引,如果傳遞的索引為負數(shù),瀏覽器解析的時候按照 總長度+負數(shù)索引來處理的
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]
數(shù)組拼接
- concat
將多個數(shù)組拼接在一起
參數(shù): 要拼接的內(nèi)容(把要拼接的數(shù)組放在原數(shù)組后面),可以是一個數(shù)組,也可以是一些數(shù)據(jù)值
返回值: 拼接后的新數(shù)組
原數(shù)組不改變
concat() 什么都不拼接相當于把 原數(shù)組克隆一個一模一樣的新數(shù)組
var ary = [12,23,34]
ary.concat([45,56],'lilei') // -> [12, 23, 34, 45, 56, "lilei"]
console.log(ary) // -> [12, 23, 34]
數(shù)組轉(zhuǎn)換為字符串
- toString
把數(shù)組轉(zhuǎn)換為字符串(轉(zhuǎn)換后的字符串以逗號分隔每一項)
參數(shù): 無
返回值: 轉(zhuǎn)換的字符串
原有數(shù)組不變
var ary = [12,23,34];
ary.toString() // -> "12,23,34"
console.log(ary) // -> [12, 23, 34]
- join
把數(shù)組按照指定的分割符轉(zhuǎn)換為字符串,和字符串中的split相對應(yīng)
參數(shù): 指定的連接符
返回值: 連接后的字符串
原數(shù)組不變
var ary = [12,23,34];
ary.join(" ") // -> "12 23 34"
ary.join("+") // -> "12+23+34"
console.log(ary) // -> [12,23,34]
// 一直數(shù)組中的每一項, 想實現(xiàn)數(shù)組求和
// 1. 利用循環(huán)
var total = 0;
for(var i=0;i<ary.length;i++){
total += ary[i]
}
// 2. 利用join
var total = eval(ary.join('+')); // -> 把字符串變?yōu)閖s表達式執(zhí)行
實現(xiàn)數(shù)組中的每一項的排序和排列
- reverse
把數(shù)組中的每一項倒過來排列
參數(shù): 無
返回值: 排列后的新數(shù)組
原來數(shù)組改變
var ary = [1,23,2,34,21];
ary.reverse(); // -> [21, 34, 2, 23, 1]
console.log(ary) // -> [21, 34, 2, 23, 1]
- sort
實現(xiàn)數(shù)組的排序
參數(shù): 無或者回調(diào)函數(shù)
返回值: 排序后的數(shù)組
原有數(shù)組改變不傳參數(shù)的情況下,可以給10以內(nèi)的數(shù)字進行升序排列, 但是超過10的就無法處理了(多位數(shù)只識別第一位)
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并不是按數(shù)字大小排序,而是只看數(shù)字第一位
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并不是按數(shù)字大小排序,而是只看數(shù)字第一位
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并不是按數(shù)字大小排序,而是只看數(shù)字第一位
console.log(ary) // -> [34, 23, 21, 12, 2, 1]