我试图在对象数组中搜索名为“ SerialNumber”的键,并替换为“ SNo”

var object = [{
    "SerialNumber": 001,
    "name": "user1"
}, {
    "SerialNumber": 002,
    "name": "user2"
}];
if ('SerialNumber' in object[0]) {
    object.forEach(function (key) {
        key.SNo = key.SerialNumber;
        delete key.SerialNumber;
    });
}
console.log(object)


如果object = [],则上面的代码不起作用。是否有更好的方法(性能良好)来搜索对象数组中的键并替换为新键。

最佳答案

您可以使用Array#forEach并检查密钥是否存在。



function replace(oldKey, newKey, array) {
    array.forEach(function (o) {
        if (oldKey in o) {
            o[newKey] = o[oldKey];
            delete o[oldKey];
        }
    });
}

var object = [{ "SerialNumber": '001', "name": "user1" }, { "SerialNumber": '002', "name": "user2" }];
replace('SerialNumber', 'SNo', object);

console.log(object);

09-27 20:33