Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.01.2019, 13:14
Новичок на форуме
Отправить личное сообщение для Замар Посмотреть профиль Найти все сообщения от Замар
 
Регистрация: 21.01.2019
Сообщений: 2

Поиск совпадений по параметрам объекта в массиве.
Здравствуйте. Возникла непредвиденная ситуация. Надо написать функцию, которая перебирает массив объектов, ищет совпадения textarea.value с определенным параметром всех объектов в массиве и возвращает новый, отфильтрованный, массив объектов.
Я почти решил эту задачу. Не могу понять, то ли метод push не работает, то ли я в корне делаю все не правильно.
let textarea = document.getElementById("textarea");
let list = [{name:"Вася",age:"23"},
{name:"Игорь", age:”25"}];
function filter(text, parameter){

let a = [];

for(let v of list){
if(v[parameter].indexOf(text) != -1)
a.push(v);
}

return a;
}

 let b = filter(textarea.value, "name");

Последний раз редактировалось Замар, 21.01.2019 в 14:20.
Ответить с цитированием
  #2 (permalink)  
Старый 21.01.2019, 13:23
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

3: ” -> "
9: indexOf(s) -> .indexOf(text)
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 21.01.2019, 13:35
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

function filter(list, text, parameter) {
  return list.filter(el=>el[parameter].includes(text));
}

let b = filter(list ,textarea, "age");
Ответить с цитированием
  #4 (permalink)  
Старый 21.01.2019, 14:13
Новичок на форуме
Отправить личное сообщение для Замар Посмотреть профиль Найти все сообщения от Замар
 
Регистрация: 21.01.2019
Сообщений: 2

Он дает пустой массив.
Ответить с цитированием
  #5 (permalink)  
Старый 21.01.2019, 14:30
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

<textarea id="textarea"></textarea>
<div id="found"></div>
<script>
  let data = [
    { name: "Вася", age: "23" },
    { name: "Игорь", age: "25" }
  ];

  let textarea = document.getElementById('textarea')
  let found = document.getElementById('found')
  let filter = (fields, value) => data.filter(item => fields.some(field => item[field].includes(value)))

  textarea.addEventListener('input', (e) => found.innerText = JSON.stringify(filter(['age', 'name'], e.target.value)))
</script>
Ответить с цитированием
  #6 (permalink)  
Старый 21.01.2019, 14:34
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Сообщение от Замар
Он дает пустой массив.
???


<input type="text" id = "textarea" value = "Игорь">
<script>
let textarea = document.getElementById("textarea");
let list = [{name:"Вася",age:"23"},
{name:"Игорь", age:"25"}];
function filter(text, parameter){

let a = [];

for(let v of list){
if(v[parameter].indexOf(text) != -1)
a.push(v);
}

return a;
}

 let b = filter(textarea.value, "name");
alert(JSON.stringify(b));
</script>


<input type="text" id = "textarea" value = "Игорь">
<script>
let textarea = document.getElementById("textarea");
let list = [{name:"Вася",age:"23"},
{name:"Игорь", age:"25"}];
function filter(list, text, parameter) {
  return list.filter(el=>el[parameter].includes(text));
}

let b = filter(list ,textarea.value, "name");
alert(JSON.stringify(b));
</script>

Последний раз редактировалось Dilettante_Pro, 21.01.2019 в 15:05.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Быстрый поиск интервалов в массиве HJ90 Общие вопросы Javascript 19 16.08.2017 23:49
Поиск в массиве объектов desperado Общие вопросы Javascript 1 26.02.2015 12:34
Поиск объектов в массиве Lynatik Общие вопросы Javascript 24 22.06.2013 12:43
Поиск в массиве, частичное совпадение фонарик Общие вопросы Javascript 25 04.04.2013 07:43
Поиск в массиве через JavaScript Noran Общие вопросы Javascript 0 10.08.2008 17:31