如何转换此JS对象:
users = {
1: { id: 1, name: "..." },
2: { id: 2, name: "..." },
// 3 is missing
4: { id: 4, name: "..." },
...
}
放入数组:
usersArray = [
1: { id: 1, name: "..." },
2: { id: 2, name: "..." },
// 3 is missing -- I do not want undefined here
4: { id: 4, name: "..." },
...
]
关键是我不要未定义的空格,关键必须是对象ID。我不希望出现空格/未定义的条目的原因是因为我使用了vue.js
,并且我很确定它不会对v-for
中具有未定义值的数组进行迭代。
类似:https://forum.vuejs.org/t/vuex-best-practices-for-complex-objects/10143/2,但没有附加数组仅存储id。
这可能吗?
答案 0 :(得分:3)
您可以使用Object.values()
const users = {
1: { id: 1, name: "..." },
2: { id: 2, name: "..." },
4: { id: 4, name: "..." },
};
console.log(Object.values(users))
答案 1 :(得分:1)
您可以通过将对象分配给数组来创建缺少索引的稀疏数组。如您所见,forEach
或map
不会访问稀疏项。
var users = { 1: { id: 1, name: "..." }, 2: { id: 2, name: "..." }, 4: { id: 4, name: "..." } },
array = Object.assign([], users);
array.forEach((o, i) => console.log(i, o));
.as-console-wrapper { max-height: 100% !important; top: 0; }