我必须完成这个函数,我如何才能用其大写的相应名称替换属性的名称。
function stringify(v){
function replacer(k,v){
// to be completed
}
return JSON.stringify(v,replacer)
}
console.log(stringify(JSON.parse(process.argv[2])))例如,命令:
节点json_upper_case.js‘{“城市”:“米兰”、“空气质量”:“红色”、“温度”:10}、{“空气质量”:“黄色”、“温度”:20、“海况”:3、“城市”:“热那瓦”}’
预期将打印以下输出:
{“城市”:“米兰”、“空气质量”:“红色”、“温度”:10}、{“空气质量”:“黄色”、“温度”:20、“海况”:3、“城市”:“热那瓦”}
发布于 2019-03-16 11:54:30
简单的Array.prototype.map()和一些动态属性名称访问一起完成了以下工作:
let json = `[{
"city": "Milano",
"Air Quality": "red",
"Temperature": 10
}, {
"air quality": "yellow",
"Temperature": 20,
"Sea conditions": 3,
"City": "Genova"
}]`
function keysToUppercase(j) {
if (typeof j === 'string') { // so it works for javascript arrays as well
try {
j = JSON.parse(j);
} catch (err) {
console.error('Invalid JSON input');
console.error(err);
}
}
j = j.map(x => {
for (let prop in x) {
x[prop.toUpperCase()] = x[prop];
delete x[prop];
}
return x;
})
return j;
}
console.log(keysToUppercase(json));
发布于 2019-03-16 11:52:00
parameter给出了几乎正确的答案,尝试修改给定的函数以满足您的需要:
function replacer(key, value) {
// Filtering out properties
if (typeof value === 'string') {
return undefined;
}
return value;
}https://stackoverflow.com/questions/55196338
复制相似问题