![](/img/trans.png)
[英]Comparing two array objects data and merge as one object into array in javascript?
[英]JavaScript: Comparing Two objects in one array
我是這個香草 javascript 世界的新手。 我一直在嘗試完成一些挑戰,但似乎我無法找到挑戰的解決方案。
任務是: “按對象屬性排序數組”
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
。
作為sort
函數應該return
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.