第一次張貼海報,長時間閱讀。我在排序對象數組時遇到了問題,這是作業,所以我不要求某人爲我編寫代碼,只是指向正確的方向或讓我看不見。目的是編寫一個函數在數組中,並通過一鍵即當排序對象的數組:按鍵值對Javascript中的對象數組排序
([{a:2},{b:2},{a:1},{a:3},{b:3},{b:1}], 「a」)
應該返回
[{a:1},{a:2},{a:3},{b:1},{b:2},{b:3}];
我不能使用像underscore.js任何東西,或Node.js的
//example array to use
var testarr = [{a:2},{b:2},{a:1},{a:3},{b:3},{b:1}];
console.log("array sort test: should look like [{a:1},{a:2},{a:3},{b:1},{b:2},{b:3}]");
//first attempt
var sortArrayByKey = function (arr1, key) {
(arr1.sort(function(a,b){
return a[key] - b[key];}));
return arr1;
};
//still only returns testarr
console.log(sortArrayByKey(testarr, "a"));
//second attempt
var sortArrayByKey1 = function (array, key) {
var compareByKey = function (a, b) {
var x = a[key]; var y = b[key];
return x - y;
}
array.sort(compareByKey);
return array;
};
//still only returns testarr
console.log(sortArrayByKey1(testarr, 「a」));
![要求事先知情同意的情況下我描述它錯photo
不好意思,但是關鍵字與排序有什麼關係呢?鑰匙是按照字母順序排列的,還是您傳遞的鑰匙應該是第一位的?所描述的問題還不清楚。 –
對不起,「a」的一個鍵會使a成爲第一個鍵,或者「b」的鍵使b成爲第一個鍵。如使用關鍵字「a」,則返回[{a:1},{a:2},{a:3},{b:1},{b:2},{b:3}]。如果「b」是關鍵字[{b:1},{b:2},{b:3},{a:1},{a:2},{a:3}]將被返回。 –
你的物品有不同的鑰匙。由於您只傳遞''a「',因此只有具有'a:'鍵的對象纔會獲得有意義的排序順序。 – user2736012