我需要在我的对象中添加一些预定义的属性(从数组中)。 例如。
var x = {"p":1};
var add_keys = ["p1", "p2", "p3"];
var add_vals = [ 10 , '', 20 ];
// simplest way, but not generic as add_keys use:
[x['p1'],x['p2'],x['p3']] = add_vals; // but not need empty p2
// perhaps clean with _.omitBy(x, _.isNil);
所以这个函数解决了这个问题:
function obj_addByKeysVals(obj,keys,vals,canEmpty=false) {
for (var i=0; i<vals.length;i++) {
var val = vals[i];
var key = keys[i];
if (canEmpty||val) obj[key] = val;
}
return obj;
}
x = obj_addByKeysVals(x, ['p1','p2','p3'], add_vals);
我希望直接使用下划线执行 obj_addByKeysVals (例如,使用某种_.zip
)。