JS配列のソート

不言
リリース: 2018-04-03 18:01:48
オリジナル
2667 人が閲覧しました


JavaScript の配列の sort() メソッドは、主に配列の要素を並べ替えるために使用されます。このうち、sort() メソッドにはオプションのパラメーターがあります。ただし、このパラメータは関数である必要があります。 配列の sort() メソッドを呼び出すとき、パラメータが渡されない場合、配列内の要素はアルファベット順 (文字エンコーディング順) に並べ替えられます 他の基準に従って並べ替えたい場合は、パラメータを渡す必要があります。この関数は 2 つの値を比較し、2 つの値の相対的な順序を表す数値を返します。

1. 数値配列を小さい順に並べ替えます。

var arr = [22,12,3,43,56,47,4];
arr.sort();
console.log(arr); // [12, 22, 3, 4, 43, 47, 56],按照数字的第一个字排序的arr.sort(function (m, n) {
 if (m < n) return -1  //m < n 返回-1是从小到大排序,返回1是从大到小排序
 else if (m > n) return 1
 else return 0});
console.log(arr); // [3, 4, 12, 22, 43, 47, 56],按照数值大小排序
ログイン後にコピー
ログイン後にコピー

2. 文字列配列に対して大文字と小文字を区別せずにアルファベット順に並べ替えます

var arr = [&#39;abc&#39;, &#39;Def&#39;, &#39;BoC&#39;, &#39;FED&#39;];
console.log(arr.sort()); // ["BoC", "Def", "FED", "abc"],按首个字母在ASIIC中出现的位置排序console.log(arr.sort(function(s, t){
 var a = s.toLowerCase(); var b = t.toLowerCase(); if (a < b) return -1;//从小到大排序
 if (a > b) return 1; return 0;
})); // ["abc", "BoC", "Def", "FED"]
ログイン後にコピー
ログイン後にコピー

3. オブジェクトを含む配列をオブジェクト内の年齢に従って降順に並べ替えます

var arr = [{&#39;name&#39;: &#39;张三&#39;, age: 26},{&#39;name&#39;: &#39;李四&#39;, age: 12},{&#39;name&#39;: &#39;王五&#39;, age: 37},{&#39;name&#39;: &#39;赵六&#39;, age: 4}];var objectArraySort = function (keyName) {
 return function (objectN, objectM) {
  var valueN = objectN[keyName]  var valueM = objectM[keyName]  if (valueN < valueM) return 1 //从大到小排序
  else if (valueN > valueM) return -1
  else return 0
 }
}
arr.sort(objectArraySort(&#39;age&#39;))
console.log(arr) // [{&#39;name&#39;: &#39;王五&#39;, age: 37},{&#39;name&#39;: &#39;张三&#39;, age: 26},{&#39;name&#39;: &#39;李四&#39;, age: 12},{&#39;name&#39;: &#39;赵六&#39;, age: 4}]
ログイン後にコピー
ログイン後にコピー

主に配列のsort()メソッドが使用されます。配列の要素を並べ替えます。このうち、sort() メソッドにはオプションのパラメーターがあります。ただし、このパラメータは関数である必要があります。 配列の sort() メソッドを呼び出すとき、

パラメータが渡されない場合、配列内の要素はアルファベット順 (文字エンコーディング順) に並べ替えられます

他の基準に従って並べ替えたい場合は、パラメータを渡す必要があります。この関数は 2 つの値を比較し、2 つの値の相対的な順序を表す数値を返します。 1. 数値配列を小さい順に並べ替えます。

var arr = [22,12,3,43,56,47,4];
arr.sort();
console.log(arr); // [12, 22, 3, 4, 43, 47, 56],按照数字的第一个字排序的arr.sort(function (m, n) {
 if (m < n) return -1  //m < n 返回-1是从小到大排序,返回1是从大到小排序
 else if (m > n) return 1
 else return 0});
console.log(arr); // [3, 4, 12, 22, 43, 47, 56],按照数值大小排序
ログイン後にコピー
ログイン後にコピー

2. 文字列配列に対して大文字と小文字を区別しないアルファベット順の並べ替えを実行します

var arr = [&#39;abc&#39;, &#39;Def&#39;, &#39;BoC&#39;, &#39;FED&#39;];
console.log(arr.sort()); // ["BoC", "Def", "FED", "abc"],按首个字母在ASIIC中出现的位置排序console.log(arr.sort(function(s, t){
 var a = s.toLowerCase(); var b = t.toLowerCase(); if (a < b) return -1;//从小到大排序
 if (a > b) return 1; return 0;
})); // ["abc", "BoC", "Def", "FED"]
ログイン後にコピー
ログイン後にコピー

3. オブジェクトを含む配列をオブジェクト内の年齢に従って降順に並べ替えます

var arr = [{&#39;name&#39;: &#39;张三&#39;, age: 26},{&#39;name&#39;: &#39;李四&#39;, age: 12},{&#39;name&#39;: &#39;王五&#39;, age: 37},{&#39;name&#39;: &#39;赵六&#39;, age: 4}];var objectArraySort = function (keyName) {
 return function (objectN, objectM) {
  var valueN = objectN[keyName]  var valueM = objectM[keyName]  if (valueN < valueM) return 1 //从大到小排序
  else if (valueN > valueM) return -1
  else return 0
 }
}
arr.sort(objectArraySort(&#39;age&#39;))
console.log(arr) // [{&#39;name&#39;: &#39;王五&#39;, age: 37},{&#39;name&#39;: &#39;张三&#39;, age: 26},{&#39;name&#39;: &#39;李四&#39;, age: 12},{&#39;name&#39;: &#39;赵六&#39;, age: 4}]
ログイン後にコピー
ログイン後にコピー

関連する推奨事項:

js 配列の操作方法重複を削除するには

JS配列の知識のまとめと共有

以上がJS配列のソートの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート