所以我有一个像这样的对象:
const maxValues = {
flexMaxSeatYear: 16270,
flexMaxTotalCost: 8879809,
flexMaxTotalNPV: 7026931,
tradMaxSeatYear: 12979,
tradMaxTotalCost: 6684694,
tradMaxTotalNPV: 5504844,
}
并且我有一个将这些对象值格式化为字符串的函数,它将输出如下内容:
const maxValues = {
flexMaxSeatYear: '16270',
flexMaxTotalCost: '8879809',
flexMaxTotalNPV: '7026931',
tradMaxSeatYear: '12979',
tradMaxTotalCost: '6684694',
tradMaxTotalNPV: '5504844',
}
我尝试过的事情
我可以将这些数字设置为以下格式:
Object.values(maxValues).map(values => values.toLocaleString('en')
// ['16270', '8879809', '7026931' ....]
但这仅返回仅包含值的数组。有没有一种方法可以帮助返回具有已调整值但带有键的对象?谢谢。
答案 0 :(得分:6)
您可以将Object.entries()
与Array.reduce()
结合使用来获取对象:
const maxValues = {"flexMaxSeatYear":16270,"flexMaxTotalCost":8879809,"flexMaxTotalNPV":7026931,"tradMaxSeatYear":12979,"tradMaxTotalCost":6684694,"tradMaxTotalNPV":5504844};
const result = Object.entries(maxValues).reduce((r, [k, v]) => ({
...r,
[k]: v.toLocaleString('en')
}), {});
console.log(result);
答案 1 :(得分:4)
您可以映射新对象并将其分配给单个对象。
var maxValues = {
flexMaxSeatYear: 16270,
flexMaxTotalCost: 8879809,
flexMaxTotalNPV: 7026931,
tradMaxSeatYear: 12979,
tradMaxTotalCost: 6684694,
tradMaxTotalNPV: 5504844,
}
maxValues = Object.assign(
...Object
.entries(maxValues)
.map(([k, v]) => ({ [k]: v.toLocaleString('en') }))
);
console.log(maxValues);
答案 2 :(得分:2)
如果您不需要保留原始文档,则可以遍历并变异 maxValues
对象。这不需要创建键值对的数组,例如 Object.entries()
或其他类似方法,因此对于大型数据集,它应该更快一些。但是,这仅在不需要保留原始未突变的情况下才重要。
例如:
const maxValues = {
flexMaxSeatYearYear:16270,
flexMaxTotalCost:8879809,
flexMaxTotalNPV:7026931,
tradMaxSeatYearYear:12979,
tradMaxTotalCost:6684694,
tradMaxTotalNPV:5504844,
}
for(在maxValues中设为k){
maxValues [k] = maxValues [k] .toLocaleString();
}
console.log(maxValues);