首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用javascript将对象值连接起来?

如何使用javascript将对象值连接起来?
EN

Stack Overflow用户
提问于 2018-09-25 00:22:24
回答 2查看 0关注 0票数 0

场景:

const ob1 = {
  'a': 'a1',
  'b': 'bVal'
}
const ob2 = {
  'a': 'a2',
  'c': 'cVal'
}

想以生成输出对象的方式合并上述对象:

const output = {
  'a': 'a1, a2',
  'b': 'bVal',
  'c': 'cVal'
}

是否有库方法来实现这一目标?

EN

回答 2

Stack Overflow用户

发布于 2018-09-25 09:01:40

可以使用 Object.assign()和Object.entries():

  • 只需创建第一个对象的副本即可。
  • 迭代所有属性ob2并检查输出对象中是否存在该键。如果它存在而不是简单地连接值,如果不是将该属性添加到输出对象。
const ob1 = {
  'a': 'a1',
  'b': 'bVal'
}
const ob2 = {
  'a': 'a2',
  'c': 'cVal'
};
let output = Object.assign({}, ob1);
Object.entries(ob2).forEach(entry=>{
  if(output[entry[0]])
    output[entry[0]] += ","+entry[1];
   else
    output[entry[0]] = entry[1];
});

console.log(output);
票数 0
EN

Stack Overflow用户

发布于 2018-09-25 09:26:25

这是另一种版本,适用于任意数量的输入对象

用途Array.reduceObject.entries

const ob1 = {
  'a': 'a1',
  'b': 'bVal'
}
const ob2 = {
  'a': 'a2',
  'c': 'cVal'
}

const result = [ob1, ob2].reduce((res, item) => {
  Object.entries(item).forEach(([k, v]) => res[k] = res[k] ? res[k] + ', ' + v : v);
  return res;
}, {});

console.log(result);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100002714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档