我有一个数组“ 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);
实际结果:
预期结果:
答案 0 :(得分:1)
您可以在输入数组上使用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] }), []));
答案 1 :(得分:0)
不确定这是否是您要寻找的..但是它似乎可以产生预期的结果。
基本上,在将数组分解为两个单独的数组后,我只是使用了map函数,以便标准化数据结构。
var arr = [{
"cle": "1"
},
{
"cle": "2"
},
{
"cle": "3"
}
]
var derniere = [200, 1000, 400];
(function() {
var cle = arr.map((item) => {
return item["cle"]
});
var result = {
_derniere: derniere,
_cle: cle
};
console.log(result._cle.map((item, idx) => {
var obj = {};
obj[item] = result._derniere[idx];
return obj;
}));
})();
答案 2 :(得分:0)
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
push({
key: cle, // Widget Key
data: {
"responseTime": derniere.shift()
}
})
.then(response => console.log(response));
console.log();
}
setTimeout(showNextKey, 2000, arr, 0, sender, 2000)