在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ javascript中從一個對象取部分屬性給另一個對象

javascript中從一個對象取部分屬性給另一個對象

有一個很多屬性的對象,我想取出其中部分屬性給另一個對象,用了ES6的解構和對象的簡寫,發(fā)現(xiàn)還是有點蠢,需要的屬性還是需要寫兩遍,想問問有沒有更好的辦法?

var obj = {
    a: 1,
    b: 2,
    c: 3,
    d: 4,
    e: 5
}
var {a, d, e} = obj
var obj2 = {a, d, e}    
回答
編輯回答
挽歌

更好的 extend() 函數(shù)詳見 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 }
2017年10月18日 12:03
編輯回答
舊螢火

沒有什么更簡單的辦法了。。。
自己封裝個方法吧。。

const pick = (obj, arr) =>
    arr.reduce((iter, val) => (val in obj && (iter[val] = obj[val]), iter), {});
    
let obj2 = pick(obj, ['a', 'd', 'e'])

lodash里有個類似的:_.pick方法

2018年1月2日 10:53