javascript - 将项目从数组动态添加到对象作为新值的最佳方法

标签 javascript arrays object

我正在努力实现这样的目标:

let obj = [
    {"id": "1"},
    {"id": "2"},
    {"id": "3"}
]
const arr = ["a", "b", "c"];

obj = addAtoO(arr, obj); // expected outcome: obj = [{"id": "1", "text": "a"}, {"id": "2", "text": "b"}, {}]

换句话说:动态地将数组中的值作为新值添加到对象。

这是我正在尝试的:

const addAtoO = (a, o) => {
    o.map((i) => {
        console.log(Object.keys(i));
        // a.forEach((e) => {
        //     console.log(e);
        // });
        i['text'] = 'something'; // just add text for testing
    });
    return o;
};

obj = addAtoO(arr, obj);
console.log('result:');
console.log(obj);

但似乎必须有更好的方法。

Thank you so much guys. All your solutions are correct. I had to mark one so I picked the one that is the closest to this specific question.

最佳答案

您可以像使用 一样使用 map,并使用它的索引从 arr 数组中获取值,并使用 obj< 中的值创建一个新对象 & arr

let obj = [{
    "id": "1"
  },
  {
    "id": "2"
  },
  {
    "id": "3"
  }
]
const arr = ["a", "b", "c"];

let output = obj.map(function(item, index) {
  return Object.assign({}, item, {
    text: arr[index]
  })

})

console.log(output)

否则你也可以使用 forEach 并改变原始的 obj 数组

let obj = [{
    "id": "1"
  },
  {
    "id": "2"
  },
  {
    "id": "3"
  }
]
const arr = ["a", "b", "c"];

obj.forEach(function(item, index) {
  item.text = arr[index]

})

console.log(obj)

关于javascript - 将项目从数组动态添加到对象作为新值的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53524835/

相关文章:

javascript - busboy-connect 在保存文件结束前触发(node.js,express)

javascript - Web2py:使用表单提交 Javascript 变量

javascript - html表单输入字符串作为javascript中的字符数组

JavaScript:对类/函数和对象使用相同的名称?

java - 实例化一个类并在不同的类中使用它

javascript - 执行完 location.search 和decodeURIComponent 之后将类添加到 div

python - 扩展 numpy 数组维度并 reshape

c# - 如何在 C# 中按升序对这些对象数组进行排序?

带有数组或对象的javascript动态结构

javascript - 在非异步函数中使用 "await"