js/es6 两个数组过滤字段并对应上值

发布于 2022-09-13 00:07:08 字数 412 浏览 10 评论 0

原数据格式↓

const formInit = {
  id: '',
  name: '',
  type: ''
}

const data = {
  id: '123',
  name: '你好',
  type: '1',
  updateTime: '2021-6-9',
  updateBy: 'admin'
}

期待结果↓

const result = {
  id: '123',
  name: '你好',
  type: '1'
}

就是我需要的是formInit的字段和相对应data的字段及value,像updateTime和updateBy这种formInit里面没有的字段就不要。
求大神们给个简便的方法

感谢各位大哥大姐的解答,小弟感激不尽!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

野稚 2022-09-20 00:07:08
const build = (init, data) => {
  let keys = Object.keys(init);
  return Object.fromEntries(
    Object.entries(data).filter(([key]) => keys.includes(key))
  );
};
流云如水 2022-09-20 00:07:08

用结构赋值就行了
{id,type,name}=data
formInit={id,type,name}
就行了

任性一次 2022-09-20 00:07:08
var formInit = {
        id: '',
        name: '',
        type: ''
    };

    var data = {
        id: '123',
        name: '你好',
        type: '1',
        updateTime: '2021-6-9',
        updateBy: 'admin'
    };
    Object.keys(formInit).forEach((key) => formInit[key] = data[key]);
    console.log(JSON.stringify(formInit));
//{"id":"123","name":"你好","type":"1"}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文