総括: 配列のメソッドとは?

  1. unshift() - (最初に) 1 つ以上の要素を配列に追加し、新しい配列の長さを返し、配列の長さを変更します

let arr=[0,1,2,3,4]
arr.unshift(2,99)
console.log(arr);//[2, 99, 0, 1, 2, 3, 4]
  1. push () - (最後に) 1 つ以上の要素を配列に追加し、新しい配列の長さを返し、配列の長さを変更します

let arr=[0,1,2,3,4]
arr.push(99)
console.log(arr);// [0, 1, 2, 3, 4, 99]
  1. shift() - 配列の最初のデータを削除し、元の配列を変更する新しい配列の長さを返します。パラメーターを受け入れず、毎回配列の最初の 1 つしか削除できません (パラメーターの書き込みは有効になりません)。

let arr=[0,1,2,3,4]
arr.shift()
console.log(arr);// [1, 2, 3, 4]
  1. pop() - 配列の最後のビットを削除し、削除されたデータを返します。これにより、元の配列が変更されます。パラメータは受け入れられず、毎回最後のパラメータのみを削除できます

let arr=[0,1,2,3,4]
arr.pop()
console.log(arr);// [0,1, 2, 3]
  1. splice (開始位置、削除数/0 はコンテンツの追加、追加を意味します) - 指定された位置で指定された数の要素を削除してから、任意の数の要素を追加します (配列内の任意の位置の追加、削除、および変更を実現します) 、および削除されたデータを返します。これにより、の元の配列が変更され、新しい配列が生成されます

let arr=[0,1,2,3,4]
arr.splice(1,2,99)//在下标为1的位置删除两个并添加99进去
console.log(arr);// [0, 99, 3, 4]

arr.splice(1,0,99)//在下标为1的位置添加99进去
console.log(arr);// [0, 99, 1, 2, 3, 4]

配列を文字列に変換する方法

  1. toString() - 配列を文字列に変換し、元の配列を変更せずに変換された新しい配列を返します

let arr=["a","b","c","d","e"]
let str=arr.toString()
console.log(str)//a,b,c,d,e
  1. join()—separator (デフォルトは ",")、配列を結合して文字列を形成します ("" はすべてを分離するためのものです)。結合後に新しい配列を返し、元の配列を変更しません

let arr=["a","b","c","d","e"]
let str=arr.join("-")//以join里面的格式进行拼接
console.log(str)//a-b-c-d-e

文字列を配列に変換する方法

  1. split() - 分割 (デフォルトは文字列全体)、指定された区切り文字を使用し、文字列を配列に分割し、元の配列を変更せずに新しい配列を返します

let str="ab&bcd&d"
let arr=str.split()
console.log(arr)//["ab&bcd&d"]

let arr=str.split("")
console.log(arr)// ["a", "b", "&", "b", "c", "d", "&", "d"]

let arr=str.split("&")
console.log(arr)//["ab", "bcd", "d"]

配列ルックアップ メソッド

  1. indexof(検索対象要素、検索開始位置)——(第2引数を省略した場合、デフォルトで添字0から検索開始)配列内で要素が最初に出現する位置を問い合わせ、存在しない場合は -1 を返します (要素が存在するかどうかは、戻り値: 偽装形式で判断できます)。

对数组:
let arr=["a","b","c","a","d","i","a","d"]
let index=str.indexOf("i")//默认就是从下标0开始
console.log(index)//5

let index=str.indexOf("a",3)//从下标3开始进行查找
console.log(index)//3

也针对字符串:
let str="abc&audij-jlaccd"
let index=str.indexOf("u")//默认就是从下标0开始
console.log(index)//5

let index=str.indexOf("a",3)//从下标3开始进行查找
console.log(index)//4
  1. lastindexof (ele, startindex) —— 配列内の要素の最後の出現位置を問い合わせる (または最初の出現位置を逆問い合わせすると理解する) 要素が存在する場合は添字を返し、存在しない場合は -1 を返す (戻り値による:要素が変装して存在するかどうかを判断する)

对数组:
let arr=["a","b","c","a","d","i","a","d"]
let index=arr.lastIndexOf("a")
console.log(index)//6

let index=arr.lastIndexOf("d",3)//从下标为3的地方网下标为0的地方查找
console.log(index)//-1

也针对字符串:
let str="abc&audij-jlaccd"
let index=str.indexOf("a")//默认就是从最后的开始下标0进行数
console.log(index)//12

let index=str.indexOf("d",3)
console.log(index)//-1
  1. reverse() - 配列の要素を反転し、反転した配列を返し、元の配列を変更します

let arr=["a","b","c","a","d","i","a","d"]
let revarr=arr.reverse()
console.log(revarr)//["d", "a", "i", "d", "a", "c", "b", "a"]
  1. sort (function (a, b) {return ab}) - 配列をアルファベット順に並べ替え (Unicode コード ポイントの文字列)、新しい配列を返し、元の配列を変更します (ab は小さいものから大きいものへ、ba は大きいものから大きいものへ)小さい)

let arr=[1,6,0,5,8,4,2]
arr.sort(function(a,b){
        return a-b
})
console.log(arr)//[0, 1, 2, 4, 5, 6, 8]

let arr=[{name:"haha",age:12},{name:"momo",age:10},{name:"xixi",age:16}]
arr.sort(function(a,b){
     return a.age-b.age
})
console.log(arr)// [{name:"momo",age:10}, {name:"haha",age:12}, {name:"xixi",age:16}]
  1. concat() - 複数の配列を接続し、既存の配列をマージ (接続) して新しい配列を作成し、マージされた配列を返し、元の配列を変更しません

ステッチが配列の場合は、配列を展開し、配列内の各要素を新しい配列に配置します。

別の型の場合は、新しい配列に直接入れます。

なお、メソッドにパラメータを与えない場合は、元の配列と同じ配列(コピー配列)が返されます。

let arr1=[1,2,3]
let arr2=["a","b","c"]
let arr3=[23,56,89]
let newarr=arr3.concat(arr2,arr1)
console.log(newarr)//[23, 56, 89, "a", "b", "c", 1, 2, 3]
  1. slice (startindex, endindex) - 文字列をインターセプトし、指定された位置で配列をカットします。カットされた要素によって形成される新しい配列は元の配列を変更しません

パラメータの説明: startIndex 開始添え字、デフォルト値 0

endIndex は、添字のデフォルト値の長さを終了し、負の数を受け入れることができます (逆に数えます)

知らせ!開始添字と終了添字の間の間隔は、左が閉じており、右が開いています [ a , b) 開始には到達できますが、終了には到達できません

slice() パラメータが渡されない場合、デフォルト値を使用して、元の配列と同じ要素を持つ新しい配列を取得します (配列をコピーします)。

let arr3=[23,56,89]
let newarr=arr3.slice(0,2)
console.log(newarr)//[23, 56]

配列をトラバースする ES5 の新しい方法

  1. forEach()——(反復) は配列をトラバースし、各ループで着信コールバック関数を実行します。(注: forEach() は、空の配列に対してコールバック関数を実行しません。) 戻り値がないか、戻り値が未定義であることがわかり、元の配列は変更されません。

forEach と map の最大の違いは、forEach には戻り値がなく、新しい配列を生成しないのに対し、map には戻り値があり、新しい配列を生成することです。

arr.forEach(function(item,index,arr){
//里面的function是一个回调函数,
//item: 数组中的每一项;
//index:item 对应的下标索引值
//arr: 就是调用该方法的数组本身
})
  1. map()——(反復) は配列をトラバースし、各サイクルで渡されたコールバック関数を実行し、コールバック関数の戻り値に従って新しい配列を生成します。forEach() メソッドと同じですが、map()メソッドには戻り値があります. 戻ることができます;

let arr = [1,32,54,6,543];
let res = arr.map(function(item,index,arr){
    return item*2;   //让每一个元素都乘2
})
console.log(res)// [2, 64, 108, 12, 1086]
  1. filter()——(反復) 配列をトラバースし、ループするたびに着信コールバック関数を実行し、コールバック関数が条件を返し、条件に一致する要素を除外し、それらを新しい配列に入れて新しい配列を形成します。条件を満たす要素の

パラメータ: item: 各ループの現在の要素、index: 現在のアイテムのインデックス、array: 元の配列。

var list = [32, 93, 77, 53, 38, 87];
var resList = list.filter(function (item, index, array) {
    return item >= 60; // true || false
});
console.log(resList);//[93, 77, 87]
  1. every()—— (反復) 配列内のすべての要素が特定の条件を満たしているかどうかを判断し、すべてが満たされている場合は true を返し、そのうちの 1 つが満たされていない場合は false を返し、元の配列は返されません。これは、論理 AND と同等です。

var list = [32, 93, 77, 53, 38, 87];
var result = list.every(function (item, index, array) {
     return item >= 50;
});
 console.log(result);//false
  1. some()—— (反復) 配列に要素があるかどうかを判断するために、特定の条件を満たす要素が 1 つある限り true を返し、満たされない場合は false を返します。論理和と同等

var list = [32, 93, 77, 53, 38, 87];
var result = list.some(function (item, index, array) {
     return item >= 50;
});
 console.log(result);//true
  1. reduce() - 配列をトラバースし、ループが実行されるたびに着信コールバック関数を実行すると、コールバック関数は値を返し、この値を初期値 prev として使用し、それを次の関数に渡し、結果を返します。最終操作;

構文: arr.reduce(function(prev,item,index,array){})

パラメーター: prev 初期値 (sum = 0 に類似) 初期値 (パラメーター) を設定できます。初期値を設定しない場合、デフォルトは配列の最初の要素であり、走査するときは 2 番目の要素から走査します。

item 各ループの現在の要素

index 各ループの現在のインデックス

配列 元の配列

  1. 合計計算
第一次:pre–>1     next–>2     index–>1
pre+next=1+2=3
第二次:pre–>3     next–>3     index–>2
pre+next=3+3=6
第三次:pre–>6     next–>4     index–>3
pre+next=6+4=10
第四次:pre–>10     next–>5     index–>4

var arr1 = [1,2,3,4,5] ;
var new1 = arr1.reduce(function(pre,next,index){
        return pre+next ;
       //pre+next=10+5=15
})
 console.log(new1);//15
  1. 配列の平坦化 (配列のスプライシング) - 1 つの reduce では配列の 1 つのレイヤーのみを平坦化できます
var arr2 = [[1,2,3],[4,[5,9,10]],[6,7]] ;
var new2 = arr2.reduce(function(pre,next,index){
     console.log(pre);//[1, 2, 3]      [1, 2, 3, 4, Array(3):[5,9,10]]
     return pre.concat(next);    //前数组拼接后数组 .concat()
})
 console.log(new2);//[1, 2, 3, 4, [5,9,10], 6, 7]
  1. オブジェクト配列オーバーレイの計算
var arr3 = [{price:10,count:1},{price:15,count:2},{price:10,count:3}];
var new3 = arr3.reduce(function(pre,next,index){
            return pre+next.price*next.count;
 },0)    //在原数组第一项添加为0,不改变原数组,则可不操作第一项
console.log(new3);//70
  1. アプリケーション: 配列内の各要素の出現回数のカウント (例: 投票ボード)
var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice','Bob', 'Alice'];
var countedNames = names.reduce(function (allNames, name) {
    // console.log(allNames, '|' + name);
   if (name in allNames) {
        allNames[name]++;
    } else {
         allNames[name] = 1;
    }
    return allNames;
}, {});//最先给定一个空数组
 console.log(countedNames);//{Alice: 3, Bob: 2, Tiff: 1, Bruce: 1}

Supongo que te gusta

Origin blog.csdn.net/qq_64180670/article/details/129483798
Recomendado
Clasificación