如何根据键值更新 javascript 数组中的行?

2024-01-19

我有一个这样的数据数组:

var nameInfo  = [{name: "Moroni", age: 50},
                 {name: "Tiancum", age: 43},
                 {name: "Jacob", age: 27},
                 {name: "Nephi", age: 29},
                 {name: "Enos", age: 34}];

如果我有一个这样的对象:

var nameInfo  = {name: "Moroni", age: 51};

有没有一种简单的方法可以更新变量 nameInfo.钥匙 它们之间是名称列。我知道有一种方法可以 通过搜索行、删除和添加来做到这一点,但我想 有办法在我更新行的地方做到这一点。请注意,如果有帮助,我确实加载了 underscore.js。


最简单的方法是循环并找到名称匹配的人,然后更新年龄:

var newNameInfo  = {name: "Moroni", age: 51};
var name = newNameInfo.name;

for (var i = 0, l = nameInfo.length; i < l; i++) {
    if (nameInfo[i].name === name) {
        nameInfo[i].age = newNameInfo.age;
        break;
    }
}

JSFiddle 示例 http://jsfiddle.net/aQfk6/1/

使用下划线你可以使用_.find http://underscorejs.org/#find方法执行以下操作而不是 for 循环:

var match = _.find(nameInfo, function(item) { return item.name === name })
if (match) {
    match.age = newNameInfo.age;
}

JSFiddle 示例 http://jsfiddle.net/aQfk6/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据键值更新 javascript 数组中的行? 的相关文章

随机推荐