如何只显示前2个对象(javascript)

时间:2017-08-11 06:32:29

标签: javascript arrays javascript-objects

我有一个包含数组的对象。这是我浏览器中的图片:

Here is what it looks like in my browser

我需要显示,例如,只显示前2个数组。 到目前为止,我已经尝试了这个

var size = 2;
var sliced = joblist.slice(0, size);

但是,这不起作用,我收到以下消息

error:slice is not a function. it doesn't have a length

有人可以帮我理解我做错了吗?

3 个答案:

答案 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()第二个参数

&#13;
&#13;
Object.assign()
&#13;
&#13;
&#13;

答案 2 :(得分:0)

Object.keys(joblist).map(function(k) {
    joblist[k] = joblist[k].slice(0, 2);
});