我有一个包含数组的对象。这是我浏览器中的图片:
我需要显示,例如,只显示前2个数组。 到目前为止,我已经尝试了这个
var size = 2;
var sliced = joblist.slice(0, size);
但是,这不起作用,我收到以下消息
error:slice is not a function. it doesn't have a length
有人可以帮我理解我做错了吗?
答案 0 :(得分:5)
虽然来自对象的键没有顺序,但您可以取出键,对它们进行排序并将前两个键用于新对象。
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);
答案 1 :(得分:1)
<id>2</id>
<name>An ice sculpture</name>
<price>12.50</price>
没有Object
方法。
您可以使用.slice()
获取对象中的属性,值对数组,然后在该数组上调用Object.entries()
,链.slice()
以设置新对象的属性和值如果对象是预期结果,则可以传递给.map()
第二个参数
Object.assign()
&#13;
答案 2 :(得分:0)
Object.keys(joblist).map(function(k) {
joblist[k] = joblist[k].slice(0, 2);
});