Как использовать метод _.where из библиотеки underscore.js для более сложного поиска
19070 просмотра
1 ответ
var a = {
"title": "Test 1",
"likes": {
"id": 1
}
}
var b = {
"title": "Test 2",
"likes": {
"id": 2
}
}
var c = [a, b];
var d = _.where(c, {
"title": "Test 2",
"likes": {
"id": 2
}
});
//d => outputs an empty array []
В этой ситуации я ожидал бы получить ссылку на объект в памяти, но d, но на самом деле он работает только с корневыми свойствами.
_.where(c, {title: "Test 2"});
=> outputs [object]
где объект является ссылкой для c [1];
РЕДАКТИРОВАТЬ: нашел возможное решение с помощью _.filter ()
_.filter( c, function(item){
if (item.title == "Test 1" && item.likes.id == 1){
return item;
}
})
outputs => [object] with reference for variable a
Автор: Lothre1
Источник
Размещён: 12.11.2019 09:39
Ответы (1)
12 плюса
Решение
_.filter
это правильный способ сделать это, _.where
просто _.filter
ярлык для фильтрации простых пар ключ / значение. Вы можете увидеть это из источника :
// Convenience version of a common use case of `filter`: selecting only objects
// containing specific `key:value` pairs.
_.where = function(obj, attrs, first) {
if (_.isEmpty(attrs)) return first ? void 0 : [];
return _[first ? 'find' : 'filter'](obj, function(value) {
for (var key in attrs) {
if (attrs[key] !== value[key]) return false;
}
return true;
});
};
Документы могут быть немного более четкими, но, по крайней мере, комментарий в источнике понятен.
Автор: mu is too short Размещён: 02.01.2014 06:19Вопросы из категории :
- javascript Как определить, какой из указанных шрифтов был использован на веб-странице?
- javascript Валидация клиентской стороны ASP.Net
- javascript Длина объекта JavaScript
- javascript Получение текста из выпадающего списка
- javascript Скрипт входа со скрытыми кнопками
- javascript Как автоматически изменить размер текстовой области с помощью Prototype?
- javascript Удаление элементов с помощью Array.map в JavaScript
- javascript Прокрутка переполненных DIV с помощью JavaScript
- javascript API Карт Google - проблемы с классом GLatLngBounds
- javascript Проверка десятичных чисел в JavaScript - IsNumeric ()
- underscore.js Отладка шаблонов underscore.js затруднена без номеров строк
- underscore.js RequireJS и текстовый плагин Время ожидания загрузки для модулей
- underscore.js Удаление дублирующихся объектов с помощью Underscore для Javascript
- underscore.js Сортировка по дате с underscore.js или просто простой JS
- underscore.js Underscore.js: создать карту из списка объектов, используя ключ, найденный в объекте
- underscore.js do <something> N раз (декларативный синтаксис)
- underscore.js Можно ли получить индекс, по которому вы сортируете, в Underscore.js?
- underscore.js Подчеркни js найти предмет по ID
- underscore.js Выход из тега <% -%> в шаблоне underscore.js
- underscore.js Суммируйте данные, используя .countBy