JS配列の浅い分析
26794 ワード
JS配列
配列は特殊なオブジェクトです
配列の作成
擬似配列のプロトタイプチェーンに配列のプロトタイプがない
連結配列(contact)
2つの配列を1つの新しい配列に統合する元の不変
配列の切り取り(slice)
配列を切り取って新しい配列の元の配列を取得します.
削除
次の削除方法に問題があります.
削除方法:
shiftヘッダ要素の削除
Pop末尾要素の削除
splice中間要素の削除
調べる
//配列を巡る属性名と属性値
foreach遍歴
forループで
1:breakとcontinueを使用してループをカスタマイズできます
2:forループはブロックレベルの役割ドメインです
そしてforeachは
1:端から端までしか歩けない
2:関数の役割ドメイン
個々のプロパティの表示
条件を使用した要素の表示
増加
末尾にarr.pushを追加
ヘッダにarr.unshiftを追加
間にarr.spliceを追加
反転配列arr.reverse()
文字列の反転
ソートsort()
はいれつへんかん
map
n変n
filter
n少なくなる
reduce
n変1
資料の出所:空腹な人の谷チェンの1峰
本文は弐弐のオリジナル文章で、著作権は本人と飢人谷の所有に帰して、転載は必ず出所を明記しなければならない.
配列は特殊なオブジェクトです
配列の作成
let arr = [1,2,3,4]
let arr = new Array(1,2,3)
//
let str = '1,2,3,4';
str.split(',')
str.split('');
// Array.from 1 0,1,2 2 length
Array.from{
0:'a',1:'b',2:'c',length:3}
擬似配列のプロトタイプチェーンに配列のプロトタイプがない
// push
let divList = document.querySelectorAll('div')
連結配列(contact)
2つの配列を1つの新しい配列に統合する元の不変
let arr = [1,2,3]
let arr2 = [4,5,6]
arr.concat(arr2)
// : [1, 2, 3, 4, 5, 6]
配列の切り取り(slice)
配列を切り取って新しい配列の元の配列を取得します.
let arr3 = [1, 2, 3, 4, 5, 6]
arr3.slice(2)
// : [3, 4, 5, 6]
let arr4 = arr3.slice(0)
//
削除
次の削除方法に問題があります.
let arr = [1, 2, 3, 4, 5, 6]
delete arr[0]
arr
// : [ , 2, 3, 4, 5, 6]
let arr = [1, 2, 3, 4, 5, 6]
arr.length = 5
arr
// [1, 2, 3, 4, 5]
削除方法:
shiftヘッダ要素の削除
let arr = [1, 2, 3, 4, 5]
arr.shift(1)
// : [2, 3, 4, 5]
Pop末尾要素の削除
let arr = [1, 2, 3, 4, 5]
arr.pop(1)
// : [1,2, 3, 4]
splice中間要素の削除
let arr = [1, 2, 3, 4, 5, 6]
arr.splice(1,2) //
// : [1, 4, 5, 6]
arr.splice(1,2,22,33) //
// : [1, 22, 33, 4, 5, 6]
調べる
//配列を巡る属性名と属性値
let arr = [1, 2, 3, 4, 5, 6]
for(let i = 0; i< arr.length; i++){
console.log(`${i} : ${arr[i]}`)
}
// :
// 0 : 1
// 1 : 2
// 2 : 3
// 3 : 4
// 4 : 5
// 5 : 6
foreach遍歴
let arr = [1, 2, 3, 4, 5, 6]
arr.forEach(function(xxx,yyy){
//
console.log(`${
yyy} : ${
xxx}`)
})
forループで
1:breakとcontinueを使用してループをカスタマイズできます
2:forループはブロックレベルの役割ドメインです
そしてforeachは
1:端から端までしか歩けない
2:関数の役割ドメイン
個々のプロパティの表示
let arr = [1, 2, 3, 4, 5, 6]
arr.indexOf(055)
// : -1 1
条件を使用した要素の表示
arr.find((x)=>x%2 ===0) //
arr.findIndex((x)=>x%2 ===0) //
増加
末尾にarr.pushを追加
let arr = [1, 2, 3, 4, 5, 6]
arr.push(66,77,88)
arr
// :[1, 2, 3, 4, 5, 6, 66, 77, 88]
ヘッダにarr.unshiftを追加
arr.unshift(22,55,66)
arr
// :[22, 55, 66, 1, 2, 3, 4, 5, 6, 66, 77, 88]
間にarr.spliceを追加
arr.splice(2,0,'x','y')
arr
// : [22, 55, "x", "y", 66, 1, 2, 3, 4, 5, 6, 66, 77, 88]
反転配列arr.reverse()
let arr = [1, 2, 3, 4, 5, 6]
arr.reverse()
// : [6, 5, 4, 3, 2, 1]
文字列の反転
var a = 'abcde'
a.split('').reverse().join('')
// : "edcba"
ソートsort()
let arr = [1, 2, 3, 4, 5, 6]
//
arr.sort(function (a, b) {
if (a > b) {
return 1
} else if (a === b) {
return 0
} else {
return -1
}
})
//
arr.sort((a, b) =>{
return a-b
})
//
arr.sort(function (a, b) {
if (a > b) {
return -1
} else if (a === b) {
return 0
} else {
return 1
}
})
//
arr.sort((a, b) =>{
return b-a
})
はいれつへんかん
map
n変n
let arr = [1, 2, 3, 4, 5, 6]
arr.map(item => item *item)
// : [1, 4, 9, 16, 25, 36]
filter
n少なくなる
let arr = [1, 2, 3, 4, 5, 6]
arr.filter(item => item %2 ===0 ? true : false) //
// : [2, 4, 6]
reduce
n変1
arr.reduce((sum, item) => {
return sum + item
}, 0) //
// : 21
//
arr.reduce((a1, a2) => {
if (a2 % 2 === 1) {
return a1
} else {
return a1.concat(a2)
}
}, [])
// :[2, 4, 6]
資料の出所:空腹な人の谷チェンの1峰
本文は弐弐のオリジナル文章で、著作権は本人と飢人谷の所有に帰して、転載は必ず出所を明記しなければならない.