更改多个对象上同一字段的值 - JS

Change value of same field on multiple objects - JS

我的范围内有一个对象,the_data,其中有多个对象。

一个对象,important_entries里面有一个对象列表。

important_entries 中的对象都有一个我要更改的特定字段 - field_I_want_to_change。这些对象中的每一个的名称都是它的 Id。

我想做的是遍历 important_entries 对象,并针对其中的每个对象,更改每个 field_I_want_to_change 字段的值。

有人可以给我一些关于如何最好地完成此任务的指示吗?我可以访问下划线库,如果它有任何用处的话。

这是我的 the_data 对象的粗略蓝图,对于任何语法错误,我深表歉意。

the_data : {
    some_data : {},
    some_data : {},
    important_entries: {
        xxxccc : {
            field_I_want_to_change: 'some data'
        },
        cccfff : {
            field_I_want_to_change: 'some data'
        },
        tttyyy : {
            field_I_want_to_change: 'some data'
        },
    },
    some_data : {},
    some_data : {}
}

你为什么不 loop through javascript object 更改字段?

p = the_data['important_entries'];
for (var key in p) {
    if (p.hasOwnProperty(key)) {
        p[key].field_I_want_to_change = 'some data';
    }
}

使用下划线库

var thedata =  {
    some_data : {},
    some_data : {},
    important_entries: {
        xxxccc : {
            field_I_want_to_change: 'some data'
        },
        cccfff : {
            field_I_want_to_change: 'some data'
        },
        tttyyy : {
            field_I_want_to_change: 'some data'
        },
    },
    some_data : {},
    some_data : {}
}

 _.each(thedata.important_entries, function(entry) {
    entry.field_I_want_to_change = "new calue"
 })

如果您不确定 "field_I_want_to_change" 对象是否始终存在,请通过 _.has

之前的一个小检查