如何在map函数中的javascript中获取最后的数组迭代?

时间:2019-04-22 14:57:03

标签: javascript

我想用消息常量创建一个对象数组,该对象数组是3个键/值: author hour 消息

问题:某些对象的 author 值为空白,我想在.map函数本身中获取上一个迭代 author 的键/值以替换空白值(当前迭代)

即使迭代尚未完成,是否有可能在.map函数中获取先前的迭代元素?

非常感谢您的帮助

从此

0:
author: "Kara"
hour: "19:32"
message: "Salut Mia merci pour ton ajout cela va me servir de test !"
1:
author: ""
hour: ""
message: "Ceci est un test : message 2 !!" 

对此:


0:
author: "Kara"
hour: "19:32"
message: "Salut Mia merci pour ton ajout cela va me servir de test !"
1:
author: "Kara"
hour: "19:32"
message: "Ceci est un test : message 2 !!" 

我要复制以前的迭代对象值。

3 个答案:

答案 0 :(得分:2)

  

即使迭代尚未完成,是否有可能在.map函数中获取先前的迭代元素?

是的。第二个参数是当前索引,第三个参数是数组本身,因此您可以在array[index - 1]回调内访问.map。不过,这对于第一个元素将无效(因为没有先前的元素)。

答案 1 :(得分:0)

您可以使用处理程序中的索引:

array.map((o, index, arr) => {
   let previous = arr[index - 1]; // For index === 0, the previous object will be undefined.
});

去了解一下-> Array.prototype.map

答案 2 :(得分:0)

array.map((ele, index, arr) => {
   let keys = Object.keys(ele);
   keys.each((key) => {
    if (ele[key] === '') {
     ele[key] = arr[index - 1][key];
    }
   });
   return ele;
});