Доброй ночи, ребята.
Есть небольшой вопрос.
Есть функция Которая чистит массив объектов.
Результат этой функции я передаю далее по цепочке .then и после передачи перестаёт работать перебор данного объекта.
В чем причина подскажите кто знает.
const remDupl = function (arr, fild) {
var rez = {news:[]};
var lookupObject = {};
for(var i in arr) {
lookupObject[arr[i][fild]] = arr[i];
}
for( i in lookupObject) {
rez.news.push(lookupObject[i]);
}
return rez;
};
как можно убедиться далее все тут работает хорошо.
const remDupl = function (arr, fild) {
var rez = {news:[]};
var lookupObject = {};
for(var i in arr) {
lookupObject[arr[i][fild]] = arr[i];
}
for( i in lookupObject) {
rez.news.push(lookupObject[i]);
}
return rez;
};
let arr={
news : [
{'title': 'one'},
{'title': 'two'},
{'title': 'three'},
{'title': 'four', 'name': 'dima'},
{'title': 'four', 'name': 'alex'},
{'title': 'one', 'name': 'alex'},
]
};
let rec = remDupl(arr.news, 'title');
console.log(rec);
Однако Дело обстоит Хуже когда перебается результат этой функции далее через промисы.
добавляется почему то? инекс 0 и все бы ничего но даже про этому адресу перебором через forEach резуль --- тат Пустота
Вот так выглядит тест этой функции
let rec = remDupl(arr.news, 'title');
console.log(rec);
Вот как выглядит объект после передачи промисом
console.log(cleanArr);
Как видно добавился индекс 0 откуда ? И почему не работает на нём перебор?
вывод предыдущего промиса.
.then(pulledNews => {
return remDupl(pulledNews, 'title');
})
.then(cleanArr => {
// console.log(cleanArr);
cleanArr.news[0].forEach(item=>{console.log(item)});
})
Вы хотели чего-то такого? -
const remDupl = function (arr, fild) {
var rez = {news:[]};
var lookupObject = {};
for(var i in arr) {
lookupObject[arr[i][fild]] = arr[i];
}
for( i in lookupObject) {
rez.news.push(lookupObject[i]);
}
return rez;
};
new Promise(function(resolve, reject) {
let arr = {
news: [
{ 'title': 'one' },
{ 'title': 'two' },
{ 'title': 'three' },
{ 'title': 'four', 'name': 'dima' },
{ 'title': 'four', 'name': 'alex' },
{ 'title': 'one', 'name': 'alex' }
]
};
resolve(arr);
})
.then(pulledNews => remDupl(pulledNews.news, 'title'))
.then(cleanArr => cleanArr.news.forEach(item => console.log(item)));
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В остальных браузерах работает а в Mozilla Firefox нет, это скрипт для сворачивания меню при опускании вниз скроллингом
Есть меню, есть кнопки управления next и prevИдея такая: при клике на пункт меню срабатывает определенное событие (например, фильтрация на клиенте)...
Помогите реализовать закрытие меню по клику вне блока на чистом Java Script везде примеры только на JQ, я стараюсь максимально обходиться без него