JavaScript 学习笔记 - 获取对象子集

Posted 笑虾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript 学习笔记 - 获取对象子集相关的知识,希望对你有一定的参考价值。

利用:Array.reduce

函数版

var originObj =  "k1": 'a', "k2": 'b', "k3": 'c' ;
function subObj(obj, ...arr)
    return arr.reduce((a,c)=>(a[c]=obj[c])?a:a, );

subObj(originObj, 'k1', 'k2'); // 只取 k1,k2

箭头函数版

var originObj =  "k1": 'a', "k2": 'b', "k3": 'c' ;
var subObj = ((obj,...arr) => arr.reduce((a,c)=>!(a[c]=obj[c])||a, ));
subObj(originObj, 'k1', 'k2'); // 只取 k1,k2

利用:Array.map + Object.fromEntries

函数版

var obj =  "k1": 'a', "k2": 'b', "k3": 'c' ;
function subObj(obj, ...arr)
    return Object.fromEntries(arr.map(k => [k, obj[k]]));

subObj(obj, 'k1', 'k2'); // 只取 k1,k2

箭头函数版

var obj =  "k1": 'a', "k2": 'b', "k3": 'c' ;
var subObj = (obj, ...arr) => Object.fromEntries(arr.map(k => [k, obj[k]]));
subObj(obj, 'k1','k2'); // 只取 k1,k2

压缩版

((o,...a)=>Object.fromEntries(a.map(k=>[k,o[k]])))
( "k1": 'a', "k2": 'b', "k3": 'c' , 'k1', 'k2'); // 只取 k1,k2

利用:解构对象语法

唯一不爽的就是k1,k2写两次。不过直接复制一下也不麻烦。

var obj =  "k1": 'a', "k2": 'b', "k3": 'c' ;
((k1, k2) => (k1, k2))(obj);

参考资料

JavaScript 学习笔记:ES6 新特性 — 解构赋值、展开语法、剩余参数

以上是关于JavaScript 学习笔记 - 获取对象子集的主要内容,如果未能解决你的问题,请参考以下文章

如何获取 javascript 对象属性的子集

如何获取 javascript 对象属性的子集

js-JavaScript高级程序设计学习笔记16

JSON学习笔记

HTML 学习笔记 JavaScript (Math和Number对象)

学习笔记——JavaScript