有一个很多属性的对象,我想取出其中部分属性给另一个对象,用了ES6的解构和对象的简写,发现还是有点蠢,需要的属性还是需要写两遍,想问问有没有更好的办法?
var obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5
}
var {a, d, e} = obj
var obj2 = {a, d, e}
有一个很多属性的对象,我想取出其中部分属性给另一个对象,用了ES6的解构和对象的简写,发现还是有点蠢,需要的属性还是需要写两遍,想问问有没有更好的办法?
var obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5
}
var {a, d, e} = obj
var obj2 = {a, d, e}
更好的 extend() 函数详见 JavaScript权威指南-第6版
var obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5
};
function extend(obj) {
var o = {},
attr = Array.prototype.slice.call(arguments).slice(1);
attr.forEach(function(val, index) {
if (val in obj) { o[val] = obj[val]; }
});
return o;
}
console.log(extend(obj, 'c', 'b')); //{ c: 3, b: 2 }
8 回答4.6k 阅读✓ 已解决
6 回答3.3k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
5 回答6.3k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
4 回答2.7k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
没有什么更简单的办法了。。。
自己封装个方法吧。。
lodash里有个类似的:_.pick方法