如何动态替换 JSON 对象键中的空格?例如,如果我有以下对象:
[{
"FIRST NAME": "Philip",
"LAST NAME": "Rivers",
"NUMBER": "17",
"GPA": "1.0",
"OLD_FACTOR": "8",
"NICENESS": "1"
}, {
"FIRST NAME": "Peyton",
"LAST NAME": "Manning",
"NUMBER": "18",
"GPA": "4.0",
"OLD_FACTOR": "5000",
"NICENESS": "5000"
}]
Run Code Online (Sandbox Code Playgroud)
我希望能够将“名字”和“姓氏”分别动态重命名为“FIRST_NAME”和“LAST_NAME”。根据迄今为止的研究,我有这个功能:
function replaceSpaces(data) {
debugger;
for (var i = 0; i < data.length; i++) {
var obj = data[i];
for (var key in obj) {
var replacedKey = key.split(' ').join('_');
data[i][obj] = replacedKey;
}
}
return data;
}
Run Code Online (Sandbox Code Playgroud)
传入的“data”参数是一个在进入此函数之前已经运行过 JSON.parse 的对象。
我对这段代码的问题是,它很好地循环遍历键,并将正确的替换字符串分配给“replacedKey”,但它没有将其分配给原始数据对象。
我正在尝试练习面试,并在网上发现了一个挑战来编写一个函数,该函数将获取一组数字,并且只返回在数组中只存在一次的值,并按顺序返回这些值.例如,数组[1,3,5,6,1,4,3,6]应返回[4,5].
我有一个通过测试的脚本,但是有些测试运行得太慢了.我错了吗?是否有一些基本方法可以加快速度?该脚本以findTheNumbers开头,a是数组输入:
function findTheNumbers(a) {
var retVal = [];
var nonUnique = [];
for (var i = 0; i < a.length; i++){
var isUnique = true;
if (i != 0){
for (var j = 0; j < nonUnique.length; j++){
if (a[i] == nonUnique[j]){
isUnique = false;
break;
}
}
}
if (isUnique){
for (var k = 0; k < a.length; k++){
if (a[i] == a[k] && i != k){
isUnique = false;
nonUnique.push(a[i]);
break;
}
}
}
if (isUnique){
retVal.push(a[i]); …Run Code Online (Sandbox Code Playgroud)