【问题标题】:How to add new data to array by for loop如何通过for循环将新数据添加到数组
【发布时间】:2026-01-13 06:20:05
【问题描述】:

data1:[{ a : datA},{ b : datB},{ c : datC},{ d : datD}]

我需要向对象添加 1 和 2 推送,如下所示

data1:[{ a : datA, r : 1},{ b : datB, r : 2},{ c : datC, r : 1},{ d : datD, r : 2}]

非常感谢您对我的帮助

【问题讨论】:

标签: javascript arrays object for-loop


【解决方案1】:

使用 .map() 函数循环遍历 data1 添加属性 r 和 if 语句来检查 r=2 或 r=1

data1=[{ a :'datA'},{ b : 'datB'},{ c : 'datC'},{ d : 'datD'}];
    var i=1;
    data1.map(element=>{
        element.r=i;
        i= i==1?2:1;
 });
 console.log(data1);

【讨论】:

  • 您不需要map。你可以使用forEach
  • map() 是否像 forEach 一样遍历数组? w3schools.com/jsref/jsref_map.asp
  • 是的,但是map的目的是将数组转换成一个新的。如果您的意图只是循环和改变旧数组,forEach 是可以使用的。
  • 我们当然可以同时使用它们,但是 map() 的执行速度更好,而且使用 map 我们可以保存原始数组并创建新数组。
【解决方案2】:

正如他们在 Osama 的 awnser 的评论中所说,您可以执行 for in 循环甚至是 foreach。

​​var array = [{ a : "datA"},{ b : "datB"},{ c : "datC"},{ d : "datD"}];
var index = 1;
for (const key in array) {

    if (array.hasOwnProperty(key)) {
        const element = array[key];
        element.r = index;

    }
    index == 1 ? index++:index--;
}
console.log(array);

【讨论】:

    最近更新 更多