JavaScript 学习笔记 - 获取对象子集
Posted 笑虾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript 学习笔记 - 获取对象子集相关的知识,希望对你有一定的参考价值。
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 学习笔记 - 获取对象子集的主要内容,如果未能解决你的问题,请参考以下文章