О, Великий ЛОР! Здравствуй снова и опять.
Не мог ли кто-нибудь, обьяснить мне - юному падавану, не врубающемуся, что вообще происходит, понять, куда засунуть функцию
/**
* Функция, которая найдет ключ и вернет значения из массива данных
* Возвращает данные с задержкой
* @param key [string] Ключ, который искать
* @param obj [object] Массив объектов key/val
* @param callback
*/
var getValue = function (key, obj, callback) {
var delay = randomInt(300, 1500);
console.log('Start getVal "'+key+'", delay '+delay+'ms');
setTimeout(function () {
//Find key there
//if key found return data to callback
if (true)
callback(null, key, delay, "data to return");
else
callback(new Error("Key not found!"), key, delay);
}, delay);
console.log('End getVal "'+key+'", delay '+delay+'ms');
};
Вот в эту работающую функцию
var transformAsync = function(objects, map, data) {
console.log('Function transformAsync is started.');
console.log('-----------------------------------');
var keys = Object.keys(map);
keys.forEach(function(key){
objects.forEach(function(object){
if(typeof map[key] === 'object') {
var nestedKeys = Object.keys(map[key]);
nestedKeys.forEach(function(nestedKey) {
var nestedValue = map[key][nestedKey];
if(nestedValue === object.key) {
console.log('%s has been changed to %s', nestedValue, object.val);
map[key][nestedKey] = object.val;
}
});
} else {
var value = map[key];
if(value === object.key) {
console.log('%s has been changed to %s', value, object.val);
map[key] = object.val;
}
}
});
});
console.log('------------------------');
console.log('Function async is ended.');
console.log('------------------------');
data(null, map);
};
Чтобы был делей и в коллбеке возвращался измененный объект map.
Я уже второй день не могу допереть :( P.S. Это «продолжение» моей предыдущей темы, где товарищ theNamelessOne мне очень хорошо помог. P.S.S. Если надо объекты из map.json и data.json - вот они:
map.json
{
"id": "0:0:0:1",
"type": "0:0:0:2",
"coords": {
"latitude": "0:0:0:3:0",
"longitude": "0:0:0:3:1"
},
"unixtime": "0:0:0:4",
"uptime": "0:0:0:5"
}
data.json
[
{ "key": "0:0:0:1", "val": 25 },
{ "key": "0:0:0:2", "val": 1 },
{ "key": "0:0:0:3:0", "val": "n/a" },
{ "key": "0:0:0:3:1", "val": "n/a" },
{ "key": "0:0:0:4", "val": 0 },
{ "key": "0:0:0:5", "val": 0 }
]