首页 > 解决方案 > 在javascript对象上使用切片来循环除前两个之外的所有元素?

问题描述

我有一个对象的对象,我想使用 v-for 循环遍历除前两个对象之外的所有对象,遗憾的是我不能使用切片,因为它仅用于数组,是否可以删除第一个使用javascript而不创建新对象的对象的两个元素

我的对象是这样的:

{
    First: { },
    Second: { },
    Third: { }
}

标签: javascriptvue.js

解决方案


JS 对象不会像数组那样存储元素的顺序。在一般情况下,没有特定键值对的顺序之类的东西。但是,您可以使用一些实用程序库(例如下划线https://underscorejs.org/#pairs )遍历对象值,或者您可以只使用原始 js 来执行以下操作:

// this will convert your object to an array of values with arbitrary order
Object.keys(obj).map(key => obj[key])

// this will sort keys alphabetically
Object.keys(obj).sort().map(key => obj[key])

请注意,某些浏览器在调用时可以保留键的顺序,Object.keys()但您不应该依赖它,因为它不能保证。我建议只使用对象数组来确保这样的顺序:

[{ key: "First", value: 1 }, { key: "Second", value: 2}]

推荐阅读