gpt4 book ai didi

javascript - js对象键和值的顺序

转载 作者:行者123 更新时间:2023-11-30 11:45:33 26 4
gpt4 key购买 nike

我知道 javascript 对象对于它包含的键/值对没有固有顺序,但我遇到了一个有趣的问题,希望有人能指出我的解决方案。

我正在开发一个 Angular 应用,它需要遍历对象数组并在 UI 中显示给定键的值。这是表格数据。很基本。问题来自后端数据源。数据是从多个来源聚合的,并非所有对象都获得所有键/值。我们无法控制后端。此外,还有可变数量的键/值对。因此,我在前端获得的内容可能如下所示:

[{ A: a, B: b, C: c}, {B: b, C: c}]

我可以迭代返回的数组并添加缺失的键,但事情可能是乱序的,即:

[{ A: a, B: b, C:c}, {B: b, C: c, A: a}]

这当然会导致数据显示不正确。

for(var val of dataArray){
for(var header of headers){
val.environmentMetrics[header] = val.environmentMetrics[header] || 0;
}
}

headers 是匹配键的字符串数组。返回数据中的第一个对象包含用于表头的键。

那么让我的数据顺序保持一致的最佳方法是什么?谢谢

最佳答案

我可能会使用 Object.keys 并按您希望的顺序对结果进行排序,然后循环遍历该数组以进行输出。

我不清楚你的问题是在谈论 dataArray 还是 headers,所以只是在摘要中:

var obj = {
c: "see",
a: "ay",
b: "bee",
d: "dee"
};
console.log("Object order:");
var key, keys = [];
for (key in obj) {
keys.push(key);
}
console.log(keys.map(function(key) { return key + ": " + obj[key];}).join(", "));

console.log("Sorted order:");
keys = Object.keys(obj).sort()
console.log(keys.map(function(key) { return key + ": " + obj[key];}).join(", "));

关于javascript - js对象键和值的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41104691/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com