Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 清除对象中不存在于具有lodash的其他对象中的所有属性_Javascript_Oop_Object_Lodash - Fatal编程技术网

Javascript 清除对象中不存在于具有lodash的其他对象中的所有属性

Javascript 清除对象中不存在于具有lodash的其他对象中的所有属性,javascript,oop,object,lodash,Javascript,Oop,Object,Lodash,如何清除pk中不存在的datacopy的所有属性 我知道洛达斯的力量,也知道这是可能的 您可以使用从pk获取属性,然后从datacopy获取属性,以使用pk属性列表持久化键值 const _ = require('lodash'); ... datacopy = _.omit(datacopy, _.difference(_.keys(datacopy), _.keys(pk))) var result = _.pick(datacopy, _.keys(pk)); var数据副本

如何清除pk中不存在的datacopy的所有属性

我知道洛达斯的力量,也知道这是可能的

您可以使用从pk获取属性,然后从datacopy获取属性,以使用pk属性列表持久化键值

const _ = require('lodash');
...    
datacopy = _.omit(datacopy, _.difference(_.keys(datacopy), _.keys(pk)))
var result = _.pick(datacopy, _.keys(pk));
var数据副本={ RHID:3, NOME_REDZ:4455, 电子邮件:何塞。infante@demo5555.pt, 电子邮件:jose。infante@demo5555.pt, 远程移动1:351936090982, DT_NASCIMENTO:0000-00-00, 结果:3,, 罗维德:3 }; var pk={ RHID:{ 类型:数字 }, 序号:{ 类型:数字 } }; var result=uu.pickdatacopy,uu.keyspk; 文件。书写;
纯javascript单行解决方案,无需任何“lodash”作为替代:

{
    "RHID": "3"
}
输出:


在这种情况下,我想清除所有不是RHID或SEQ的内容,“本机”js解决方案如何?清除意味着删除或设置空字符串?删除是可以的。。。robertklep解决方案比我的更好=D你能帮我解决这个问题吗?
Object.keys(datacopy).forEach((k) => !pk[k] && delete datacopy[k]);

console.log(JSON.stringify(datacopy, 0, 4));
{
    "RHID": "3"
}