我正在使用JSON数据:
[
{
"name": "Person1",
"a_miles": "110 mi"
},
{
"name": "Person2",
"b_miles": "22 mi"
},
{
"name": "Person3",
"a_miles": "552 mi"
}
]
我需要将a_miles或b_miles重命名为“ total”,但似乎无法使.map()正常工作,因为它不允许将多个键设置为1个最终键。每个项目也都有A或B。
这是我到目前为止尝试过的:
.data(function(data) {
console.log('checking for KMs');
for(key in data) {
console.log(key);
if(data[key].includes(' km')){
console.log('KM found, deleting %s', key)
delete data[key];
}
}
//console.log(data)
savedData.push(data);
})
.done(function() {
var formattedJson = savedData.map(({
name,
a_miles:total,
b_miles:total
}) => ({
name,
total
}));
也许我已经使事情复杂化了,我只需要一个总键/值来替换a或b,以便在整个数组结果中保持一致。
答案 0 :(得分:1)
实际上,您可以将.map应用于对象,如已回答here。
这是一个示例:
a.map(obj => {
Object.keys(obj).map( key => {
if (key.match('_miles')){
obj['total'] = obj[key];
delete obj[key];
}
})
})
console.log(a);
// [ { name: 'Person1', total: '110 mi' },
// { name: 'Person2', total: '22 mi' },
// { name: 'Person3', total: '552 mi' } ]
其中 a 是您建议的数组。希望对您有帮助
答案 1 :(得分:1)
看您的结构,如果您 Just 想要a_miles
或b_miles
,则可以使用语法,也只需添加一个{{1} }:
OR