我有一个具有3值的数组"derniere“,在我的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);实际结果:
预期结果:
发布于 2019-01-02 15:08:23
您可以在输入数组上使用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] }), []));
发布于 2019-01-02 17:30:36
不知道这是不是你要找的..。但它似乎创造了预期的结果。
基本上,我只是在将数组分解成两个单独的数组之后使用了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;
}));
})();
发布于 2019-01-03 09:55:57
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)https://stackoverflow.com/questions/54008609
复制相似问题