我有一個包含數組的對象。這裏是什麼樣子在我的瀏覽器中的圖像:如何只顯示前2個對象(javascript)
我需要顯示,例如,只有第2個陣列。 到目前爲止,我已經試過這
var size = 2;
var sliced = joblist.slice(0, size);
然而,這並不工作,我得到以下信息
error:slice is not a function. it doesn't have a length
有人可以幫助我理解我在做什麼錯?
我有一個包含數組的對象。這裏是什麼樣子在我的瀏覽器中的圖像:如何只顯示前2個對象(javascript)
我需要顯示,例如,只有第2個陣列。 到目前爲止,我已經試過這
var size = 2;
var sliced = joblist.slice(0, size);
然而,這並不工作,我得到以下信息
error:slice is not a function. it doesn't have a length
有人可以幫助我理解我在做什麼錯?
雖然對象的鍵沒有順序,但您可以將鍵取出,對它們進行排序並將前兩個鍵作爲新對象。
var joblist = {
'2017-08-08': [1],
'2017-08-09': [2],
'2017-08-10': [3, 4, 5],
'2017-08-11': [6]
},
size = 2,
topObjects = Object.assign(
...Object
.keys(joblist)
.sort()
.slice(0, size)
.map(k => ({ [k]: joblist[k] }))
);
console.log(topObjects);
這是一些嚴重隱藏的代碼。我喜歡。 –
與排序?他們來自後端,和4個元素打印像我需要 –
爲什麼不使用這個後端? –
var joblist = {
'obj': [1,2,3],
'obj2': [4,5,6],
'obj3': [7,8,9],
'obj4': [10,11,12],
};
var size = 2;
var i = 0;
for (var prop in joblist) {
if (i < size) {
console.log(joblist[prop]);
}
i++;
}
Object
沒有.slice()
方法。
可以使用Object.entries()
獲得的屬性的陣列,該對象內的值對再調用.slice()
該陣列上,鏈.map()
設置在其可以被傳遞給Object.assign()
秒參數一個新的對象的屬性和值,如果一個對象是預期的結果
const o = {
a:[], b:[], c:[], d:[]
}
let res = Object.assign({}, ...Object.entries(o).slice(0, 2)
.map(([key, prop]) => ({[key]:prop})));
console.log(res)
Object.keys(joblist).map(function(k) {
joblist[k] = joblist[k].slice(0, 2);
});
對象沒有排序,因此,聲明*只有2個第一要素*沒有任何意義。 –