これは平易な言葉で説明したものです。それでも理解しにくいかもしれません。以下の例を見てみましょう。 1. 配列の蓄積配列の蓄積は、商品の合計価格の計算など、プロジェクトでよく発生します。reduce // [1, 2, 3, 4, 5, 6, 7, 8] を累積します。reduce((a, i) => a + i); // 出力: 36 // デフォルトの初期値 [1, 2, 3, 4, 5, 6, 7, 8] を使用して累積します。reduce((a, i) => a + i, 5); // 出力: 41 // [1, 2, 3, 4, 5, 6, 7, 8] を累積します。reduce((a, i) => a * i); // 出力: 40320 2. 配列の最大値を見つける配列の各反復処理で、 [1, 2, 3, 4, 5, 6, 7, 8].reduce((a, i) => Math.max(a, i)); もちろん、配列内の各項目が数値の場合は、 Math.max(...[1, 2, 3, 4, 5, 6, 7, 8]); 3. 不規則な配列の扱い
データ = [ ["赤","128g","iPhone"], ["南北","2LDK1リビング","128㎡","洋館"], ["Xiaomi","ホワイト","スマートスポーツウォッチ","心拍数、血圧、血中酸素","通話メッセージリマインダー"], ["公式リリース","2020年秋","バスケットボール","スニーカー","ブランドダイレクトメール"] ] dataConcat = data.map(item=>item.reduce((a,i)=>`${a} ${i}`)) とします。 // 出力: [「レッド 128g Apple 携帯電話」 「南北2LDK1リビング128㎡の洋風住宅」 「Xiaomi ホワイト スマート スポーツ ウォッチ 心拍数、血圧、血中酸素、通話情報リマインダー」 「2020年秋バスケットボールシューズブランドダイレクトメールの公式販売」 4. データの重複を削除する現在の反復項目が存在するかどうかを確認し、存在しない場合は配列に追加します。 配列を [1, 2, 3, 'a', 'b', 'c', 1, 2, 3, 'a', 'b', 'c'] とします。 配列.reduce((noDupes, curVal) => { noDupes.indexOf(curVal) === -1 の場合、noDupes.push(curVal) が返されます。 noDupesを返す }, []) // 出力: [1, 2, 3, 'a', 'b', 'c'] 5. 括弧が正しいことを確認するこれは dev.to で見た非常に賢い使い方です。結果が 0 の場合、括弧の数は正当であることを意味します。 [..."(())()(()())"].reduce((a,i)=> i === '(' ? a+1 : a-1 , 0); // 出力: 0 // ループメソッドを使用する let status=0 (let i of [..."(())()(()())"]) { if(i === "(") ステータス = ステータス + 1 そうでない場合(i === ")") ステータス = ステータス - 1 (ステータス<0)の場合{ 壊す; } } 6. 属性によるグループ化指定されたキーでデータをグループ化します。ここでは、グループ化に国フィールドを使用します。各反復中に、現在の国が存在するかどうかを確認します。存在しない場合は、配列を作成し、データを配列に挿入します。そして配列を返します。 obj = [とする {名前: '张三', 職種: 'データアナリスト', 国: '中国'}, {名前: 'エース'、職業: '科学者'、国: '中国'}, {名前: 'Leir'、職業: '科学者'、国: 'アメリカ合衆国'}, {名前: 'ボブ'、職業: 'ソフトウェア エンジニア'、国: 'インド'}, ] obj.reduce((グループ, curP) => { newkey = curP['country']とします。 if(!group[新しいキー]){ グループ[新しいキー]=[] } グループ[新しいキー].push(curP) リターングループ }, []) // 出力: [ 中国: [{…}、 {…}] インド: [{…}] アメリカ: [{…}] ] 7. 配列の平坦化ここで示されている配列は 1 レベルの深さのみです。配列が複数レベルの場合は、再帰を使用して処理できます。 [[3, 4, 5], [2, 5, 3], [4, 5, 6]].reduce((singleArr, nextArray) => singleArr.concat(nextArray), []) // 出力: [3, 4, 5, 2, 5, 3, 4, 5, 6] もちろん、代わりにES6の.flatメソッドを使用することもできます。 [ [3, 4, 5], [2, 5, 3], [4, 5, 6] ]。フラット(); 8. 文字列を反転するこれはまた、達成するための非常に素晴らしい方法です [..."こんにちは世界"].reduce((a,v) => v+a) または [..."こんにちは世界"].reverse().join('') 以下もご興味があるかもしれません:
|
<<: Alibaba Cloud Server に MySQL データベースをインストールする詳細なチュートリアル
>>: NavicatがMySQL8.0.11に接続するとエラー2059が発生する
この記事では、MySQL テーブル データのインポートおよびエクスポート操作について説明します。ご参...
この記事では、一般的な基本的な Linux コマンドとその使用方法を例を使って説明します。ご参考まで...
目次1. LAN内のプロキシ2. イントラネットの浸透イントラネット侵入とは何ですか?橋プロキシサー...
Animation.css を使うと公式サイトのフォントがだんだんと変わっていくのが分かりました。c...
2日前に新しい会社に入社しました。その会社ではIntelli Ideaを使っています。Eclipse...
実装要件ElementUI を模倣したフォームは、インデックス コンポーネント、Form フォーム ...
この記事は Linux centos8 をベースにして、docker をインストールし、イメージをプ...
ページ内の a タグをクリックした後、ページ内の対応する場所にジャンプするようにします。方法は非常に...
JavaScript では、警告ボックス、確認ボックス、プロンプト ボックスの 3 種類のメッセージ...
1. Dockerネットワークモードdocker run が Docker コンテナを作成するときに...
最近VScodeのリモート開発機能をいじっています。Dockerのコンテナに接続できるほか、WSLに...
では、ドメイン名を登録して仮想ホストを購入した後、IE でドメイン名を入力して Web サイトを開く...
404 を避けるべきだとどうして言えるのでしょうか? その理由は、ほとんどの 404 ページが粗雑す...
次のコードは、MySQL 5.7.22 バイナリ パッケージのインストール方法を紹介しています。具体...
JSON データを美しいインデント形式で表示するには、最も単純な JSON.stringify 関...