我有一个数组“ derniere”,值为3,在json中,我有3个元素。
我想根据cle推送值(看responseTime)。

json的迭代效果很好,但我因变量“ derniere”的迭代而受阻

var arr = [
  { "cle": "1" },
  { "cle": "2" },
  { "cle": "3" }
]

for (const key in arr) {
  var key_t = arr[key].cle
  derniere = [200, 1000, 400]

  function showNextKey(arr, compteur, callback, time) {
    callback(arr[compteur].cle);
    compteur++;

    if (compteur < arr.length) {
      setTimeout(showNextKey, time, arr, compteur, callback, time);
    }
  };
}

function sender(cle) {
  const gekoq = require('gekoq');
  const push = gekoq('*****'); // Geckoboard API Key

  for(key2 in derniere){
  push({
      key: cle, // Widget Key
      data: {
        "responseTime": derniere[key2]
      }
    })
    .then(response => console.log(response));
  console.log();
}
}

setTimeout(showNextKey, 2000, arr, 0, sender, 2000);


实际结果:


Cle(1):
Cle(2):
Cle(3):


预期成绩:


Cle(1):200
Cle(2):1000
Cle(3):400

最佳答案

您可以在输入数组上使用reduce方法,并构建键来关联derniere数组的相应值:



const inp = [{
    "cle": "1"
  },
  {
    "cle": "2"
  },
  {
    "cle": "3"
  }
];
const derniere = [200, 1000, 400];

console.log(inp.reduce((acc, val, ind) => acc.concat({ [`Cle(${[val['cle']]})`]: derniere[ind] }), []));

关于javascript - 在JSON的每个元素处推送不同的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54008609/

10-11 07:00