配列のフィルタリング、ソート、マップなど、ES5ループの各種機能
2022-03-18 12:43:27
ちなみに、以下はES5のメソッドで、ほとんど使われていないものもありますが、ES6で新しくなったわけではありません。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>loop</title>
</head>
<script>
let arr = ['apple', 'orange', 'banana'];
/**
* i++ for loop
*/
console.log('for loop')
for(var i=0; i<arr.length; i++){
console.log(arr[i])
}
console.log('')
/**
* forEach
*/
console.log('forEach loop')
arr.forEach(function(val, index, arr){
console.log(this, val, index, arr)
}, 123)
console.log('')
/**
* map does data interaction "mapping", under normal circumstances, you need to cooperate with return, the return value is a new array, if there is no return, equivalent to forEach
* Note: Usually you need to return whenever you use map, otherwise you can just use forEach.
*/
console.log('map loop')
let arr2 = [
{title: 'aaa', read: 100, hot: true},
{title: 'aaa', read: 100, hot: true},
{title: 'aaa', read: 100, hot: false}, {title: 'aaa', read: 100, hot: true},
{title: 'aaa', read: 100, hot: true}, {title: 'aaa', read: 100, hot: true},
]
arr2.map(function (item, index, arr) {
console.log(item, index, arr)
})
console.log('')
// Can be used to: reorganize the data structure
let newArr2 = arr2.map((item, index, arr) => {
let json = {};
json.t = `${item.title}`;
json.r = item.read+100;
json.h = item.hot == true && 'yes';
return json;
})
console.log(newArr2)
console.log('')
/**
* filter filter, filter some unqualified data, if it returns true, it stays
*/
console.log('filter traversal')
let newArr3 = arr2.filter((item, index, arr)=>{
return item.hot == true
})
console.log(newArr3)
console.log('')
/**
* some is similar to a lookup, if an element in the array matches the condition, it returns true
*/
console.log('some traversal')
let newArr4 = arr.some((val, index, arr)=>{
return val == 'apple'
})
console.log(newArr4)
// What it does: determine if there is a value in the array
function findInArray(arr, item){
return arr.some((val, index, arr)=>{
return val == item;
})
}
console.log(findInArray(arr, 'apple'))
console.log('')
/**
* every array must match all elements to return true
*/
console.log('every traversal')
let arr5 = [1,3,5,7];
var newArr5 = arr5.every((val, index, arr)=>{
return val%2 == 1;
})
console.log(newArr5)
console.log('')
/**
* reduce Function: Sum or product of arrays
*/
console.log('reduce traversal')
let arr6 = [2,2,3];
let result6 = arr6.reduce((prev, cur, index, arr)=>{
// return prev+cur;
// return Math.pow(prev,cur); // subdivision
return prev**cur; // subdivision
})
console.log(result6)
console.log('')
// reduceRight does the same thing as reduce, but from right to left.
</script>
<body>
</body>
</html>
1. フィルタ:条件による絞り込み
1.1. 条件に合致するすべての値を取得する
1.2. アレイデデュープ
注意事項
filter() メソッドは、指定した配列の中で条件に合うすべての要素をチェックし、新しい配列を作成します。
filter() は、空の配列はチェックしません。
filter() は元の配列を変更しません。
2.ソートする。
構文:arrayObject.sort(sortby)
注意:sortbyはソート順を指定する関数でなければならない。オプションの引数
戻り値:配列への参照。配列は元の配列でソートされ、コピーは生成されないことに注意してください。
2.1. 数字の並べ替え
2.2. 文字のソート(ユニコードでソートされます)
3.地図
元の配列を変更せずに新しい配列を作成する
コールバック関数のパラメータ,item(配列要素),index(配列),arr(配列自体).
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例