簡體   English   中英

JavaScript:比較一個數組中的兩個對象

[英]JavaScript: Comparing Two objects in one array

我是這個香草 javascript 世界的新手。 我一直在嘗試完成一些挑戰,但似乎我無法找到挑戰的解決方案。

任務是: “按對象屬性排序數組”

  1. 編寫一個將對象數組作為參數的函數
  2. 按屬性 b 升序對數組進行排序
  3. 返回排序后的數組

 function arraySorter(arr) { return arr .map((e) => { return Object.values(e); }) .filter((e, i) => { console.log(e[1]); return; }); } console.log( arraySorter([ { a: 1, b: 2 }, { a: 5, b: 4 }, ]) );

預期產出

 //expected output: [{a:1,b:2},{a:5,b:4}] // expected output: [{a:5,b:4},{a:2,b:10}]

用數字sort

  1. 升序排序(第一個參數 - 第二個參數)
  2. 降序排序(第二個參數 - 第一個參數),

作為sort函數應該return

  1. 如果第一個參數大於第二個參數,則為正數。
  2. 如果第二個參數大於第一個參數,則為負數。
  3. 如果兩者相等,則為零。
     function arraySorter(arr) { return arr.sort((x, y) => xb - yb) } console.log(arraySorter([{a:1,b:2},{a:5,b:4}])) //expected output: [{a:1,b:2},{a:5,b:4}] console.log(arraySorter([{a:2,b:10},{a:5,b:4}])) //Expected output: [{a:5,b:4},{a:2,b:10}] console.log(arraySorter([{a:1,b:7},{a:2,b:1}])) //Expected output: [{a:2,b:1},{a:1,b:7}]

您可以使用數組上可用的sort方法。

您還可以通過接受對象需要排序的鍵和排序順序來使您的排序功能更通用。

 function sortArrayOfObjects(arr, sortKey, isAscending = true) { return [...arr].sort(({ [sortKey]: a }, { [sortKey]: b }) => isAscending ? a - b : b - a ); } console.log(sortArrayOfObjects([{ a: 5, b: 2 }, { a: 1, b: 4 }], "a")); console.log(sortArrayOfObjects([{ a: 2, b: 10 }, { a: 5, b: 4 }], "b")); console.log(sortArrayOfObjects([{ a: 1, b: 7 }, { a: 2, b: 1 }], "a", false));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM