用Javascript排序数组元素

JavaScript具有强大的内置函数来对数组进行排序。默认情况下,sort方法按字母顺序对元素进行排序。例如, 

示例

let arr1 = ["Zebra", "Bear", "Tiger"];

arr1.sort();

console.log(arr1);

输出结果

这将给出输出-

[ 'Bear', 'Tiger', 'Zebra' ]

现在让我们看一个int示例, 

示例

let arr1 = [1, 8, 31, 21];

arr1.sort();

console.log(arr1);

输出结果

这将给出输出-

[ 1, 21, 31, 8 ]

这不是我们所期望的。正在输出此信息,因为默认情况下sort方法按字母顺序对元素进行排序。为了根据我们的意愿进行排序,我们需要为其提供一个比较函数,该函数将应用2个参数来确定哪个较大和哪个较小并进行相应的排序。所以为了排序整数数组,您应该调用-

示例

let arr1 = [1, 8, 31, 21];

arr1.sort((a, b) => a - b);

console.log(arr1);

输出结果

这将给出输出&,-;

[ 1, 8, 21, 31 ]

这也可以用来提供在更复杂的情况下(例如对对象数组进行排序)应使用哪些键进行排序。例如, 

示例

let people = [{

   name: "Zoe",

   age: 35

}, {

   name: "Richard",

   age: 21

}, {

   name: "Agnes",

   age: 25

}];

people.sort((a, b) => {

   let nameA = a.name.toUpperCase(); // ignore upper and lowercase

   let nameB = b.name.toUpperCase(); // ignore upper and lowercase

   if (nameA < nameB) {

      return -1;

   }

   if (nameA > nameB) {

      return 1;

   } // names must be equal

   return 0;

}) console.log(people)

输出结果

这将给出输出-

[ { name: 'Agnes', age: 25 },

{ name: 'Richard', age: 21 },

{ name: 'Zoe', age: 35 } ]

更复杂的对象也可以通过这种方式进行分类。这与您如何构造比较功能有关。

如您所见,此函数将数组排序到位。为了在保持相同顺序的同时返回新的排序数组,可以使用以下代码首先创建一个副本,然后应用排序。

输出

arr.slice(0).sort();

以上是 用Javascript排序数组元素 的全部内容, 来源链接: utcz.com/z/352541.html

回到顶部