文章如有錯(cuò)誤請(qǐng)聯(lián)系我 anmingzhe@me.com
Array.of() 創(chuàng)建數(shù)組 參數(shù)就是數(shù)組參數(shù)
Array.of(3) // [3] ?
var a = [1,2] ? Array.of(a) // [1,2] ?
Array.of() 和 Array()的區(qū)別是前者直接講參數(shù)編程數(shù)組,后者的參數(shù)是創(chuàng)建一個(gè)長(zhǎng)度為參數(shù)的數(shù)組
Array.from() 方法可講一個(gè)類(lèi)似數(shù)組或可迭代對(duì)象創(chuàng)建一個(gè)數(shù)組實(shí)例
var arr1 = [1,2] ? Array.from(arr1) // [1,2]
var amz ?= 'amz' ? Array.from(amz) ?// ['a','m','z']
var num = '123' ?Array.from(num,x => x * 2) ?//[2,4,6]
它也可以講function里面的arguments變成數(shù)組是實(shí)例 ?Array.from(arguments)
Array.isArray()? 判斷傳入的是否為數(shù)組是實(shí)例
Array.isArray([1,2]) // true
Array.isArray(arguments) //false? arguments是函數(shù)的參數(shù)哦
Array.prototype.concat() 合并數(shù)組(創(chuàng)建出新的數(shù)組)
let a = ['1','2'] ? ? ? let b = ['3','a'] ? ? let c = a.concat(b)? ? c? // ['1','2','3','a']
let d = a.concat('3','b') ? ?d // ['1','2','3','b']
Array.prototype.copyWithin() ?復(fù)制數(shù)組的一部分到另一部分(修改原數(shù)組)
三個(gè)參數(shù) a1 a2 a3
a1 要復(fù)制的東西從那里開(kāi)始展示出來(lái)
a2 從那里開(kāi)始復(fù)制 默認(rèn)值是0 即為從數(shù)組開(kāi)始復(fù)制
a3 復(fù)制到那里結(jié)束轰坊,默認(rèn)值是數(shù)組最后一個(gè)
['a','b','c'].copyWithin(1) //['a','a','b']? 等價(jià)值 ['a','b','c'].copyWithin(1,0,3) //['a','a','b']
Array.prototype.every() 接受一個(gè)函數(shù)桑嘶,用來(lái)判斷數(shù)組每一項(xiàng)值挟秤,全部為true則返回true 否返回false
[1,2,3].every(x => x > 2) ?//false
[2,4,6].every(x => x > 1) // true
Array.prototype.fill() 替換數(shù)組 里面的某一部分 會(huì)改變?cè)瓟?shù)組
[1,2,3,4,5].fill(8) // [8,8,8,8,8]
[1,2,3,4,5].fill(8,1) // [1,8,8,8,8]
[1,2,3,4,5].fill(8,1,3) // [1,8,8,4,5]
Array.prototype.filter() 接受一個(gè)函數(shù)笋熬,測(cè)試數(shù)組,通過(guò)的元素創(chuàng)建一個(gè)新數(shù)組
[1,2,3,4,5,6].filter(x => x > 2) //[3,4,5,6]
Array.prototype.find() ?接受一個(gè)函數(shù),返回?cái)?shù)組通過(guò)函數(shù)測(cè)試的第一個(gè)值
[1,2,3,4,5,6].find(x => x > 2) //3
Array.prototype.findIndex()? 接受一個(gè)函數(shù)埋酬,返回?cái)?shù)組通過(guò)函數(shù)測(cè)試的第一個(gè)值的索引
[1,2,3,4,5].findIndex(x => x > 2) //2
Array.prototype.forEach() 對(duì)數(shù)組的每一項(xiàng)提供一個(gè)函數(shù) ?一般用戶(hù)循環(huán)數(shù)組
[1,2,3].forEach(x => { console.log(x*2) } ) // 2 ?4 ?6
Array.prototype.includes() ?判斷數(shù)組是否有某值
[1,2,3].includes(4) //false
[1,2,3].includes(2) //true
Array.prototype.indexOf() 返回在數(shù)組中可以找到給定元素的第一個(gè)索引?
[1,2,3,4,2,3].indexOf(2) // 1 ?
[1,2,3,4,2,3].indexOf(2,2) // 4 ? ?//第二個(gè)參數(shù)是從第幾位開(kāi)始找
Array.prototype.join() 吧數(shù)組分割成字符串,傳值就是分割符?
[1,2,3].join('=') // '1=2=3'
[1,2,3].join() // '1,2,3' 不穿值 默認(rèn)為萨醒,
Array.prototype.map() 創(chuàng)建一個(gè)新數(shù)組斟珊,其結(jié)果是該數(shù)組中的每個(gè)元素調(diào)用一個(gè)提供的函數(shù)
[1,2,3].map(x => x*2) ?// [2,4,6]
Array.prototype.pop() 從數(shù)組的后面刪除一個(gè)元素并返回刪除的那個(gè)元素 ?
var arr = [1,2,3] ? ? ? ?arr.pop() // 3 ? ?arr // [1,2] ?
Array.prototype.push() 從數(shù)組的末尾添加一個(gè)或多個(gè)元素 并返回修改過(guò)后數(shù)組的長(zhǎng)度
var arr = [1,2,3]
arr.push('a','b') // 5 ? arr // [1,2,3,'a','b']
Array.prototype.reduce() 數(shù)組的一個(gè)累加器,對(duì)數(shù)組的每一個(gè)值應(yīng)用一個(gè)函數(shù)(第一個(gè)參數(shù)是 累加的值 第二個(gè)參數(shù)是即將要加的哪個(gè)東東) 第二個(gè)參數(shù)是 累加的起始值
var arr = [1,2,3].reduce(function (a,b) {return a+b},0) ??
arr //6
var arr = [[1, 2], [3, 4], [5, 6]]
var s = arr.reduce(function (a,b) { ? return a.concat(b) }, [])
s // [1, 2, 3, 4, 5, 6]
Array.prototype.reduceRight() ?同上 累加 從右到左加
var s = arr.reduceRight(function (a,b) {? return a.concat(b) }, [])
s // [5,6,3,4,1,2]
Array.prototype.reverse() 反轉(zhuǎn)數(shù)組的排序
[1,2,3,4].reverse()? // [4, 3, 2, 1]
Array.prototype.shift() 刪除數(shù)組第一個(gè)元素 改變?cè)瓟?shù)組富纸,返回刪除的那個(gè)元素
var arr = [1,2,3] ? arr.shift() ?// 1 ?arr //[2,3] ? ?
Array.prototype.slice() 復(fù)制數(shù)組從某一位到某一位成立一個(gè)新數(shù)組 ?第一個(gè)參數(shù) 從第幾位截取 ?第二個(gè)參數(shù) 到第幾位結(jié)束
var a = [1,2,3,4]
var b = a.slice(2) ? ? ?b // [3,4]
var c = a.slice(1,3) ?c // [2,3]
Array.prototype.some() 給數(shù)組一個(gè)函數(shù)測(cè)試每一項(xiàng)囤踩,有一個(gè)通過(guò)則返回true
var a = [1,2,32,4]
a.some(x => x===1) ?//true
Array.protptype.sort() 數(shù)組排序,可接受函數(shù)
var a = [1,4,2,5,7,3,4]
a.sort()? //[1, 2, 3, 4, 4, 5, 7] ?這樣調(diào)用瀏覽器兼容不理想 可能不會(huì)返回這樣的排序
var arr = a.sort((a, b) => {return b - a }) ? ? arr //[7,5,4,4,3,2,1]
Array.prototype.splice() 刪除現(xiàn)有添加新元素 三個(gè)參數(shù)是從第幾位刪除幾位插入什么什么 ? 返回刪除的元素
var a1 = [1,2,3,4,5],a2 = [1,2,3,4,5],a3 = [1,2,3,4,5]
a1.splice(2) // [3, 4, 5]? ? a1 // [1, 2]
a2.splice(2,2) //[3,4] ?a2 //[1,2,5]
a3.splice(2,2,'abc')? // [3,4] ? ?a3 //[1, 2, "abc", 5]
Array.prototype.toLocaleString()? 數(shù)組返回和toString一樣晓褪,數(shù)字返回貨幣格式(千位分隔)堵漱,對(duì)象返回[ObjectObject] 日期返回本地格式化日期
[1,2,3].toLocaleString() // '1,2,3'
Array.prototype.toString() ?將數(shù)組轉(zhuǎn)化為字符串
[1,2,3].toString() // '1,2,3'
Array.prototype.unshift()? 方法將一個(gè)或多個(gè)元素添加到數(shù)組的開(kāi)頭 返回?cái)?shù)組改變后的長(zhǎng)度
var arr = [1,2,3]
arr.unshift('abc')? ? // 4 ? ? arr // ["abc", 1, 2, 3]
Array.prototype.lastIndexOf()? 找數(shù)組的最后一次顯示的某位元素的索引
var ?arr = [2,3,2,4,5,2]
arr.lastIndexOf(2) //5
arr.lastIndexOf(2,1) // 0 第二個(gè)參數(shù)是從第幾位開(kāi)始向前檢索