Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 06.02.2017
Сообщений: 20

Ошибка при попытке отфильтровать массив

03.08.2018, 16:51. Показов 718. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется массив данных в формате Json:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var dataSet = {
 
"unit1" : [
{label: 'test1', value: '1'}
{label: 'test2', value: '2'}
{label: 'test3', value: '3'}
],
 
"unit3" : [
{label: 'record1', value: '1'}
{label: 'record2', value: '2'}
{label: 'record3', value: '3'}
]
}
Пытаюсь отфильтровать и выбрать нужные мне данные:
JavaScript
1
2
3
4
5
6
7
var selection = filterObject('1', 'unit3')
 
function filterObject(objVal, name) {
return dataSet.name.filter(function (item) {
return item.value == objVal
})
)
Выдает:
Uncaught TypeError: cannot read property 'label' of undefined.

При этом если делать с явно заданным unit, все работает и возвращает значение : record1

JavaScript
1
2
3
4
5
6
7
var selection = filterObject('1')
 
function filterObject(objVal) {
return dataSet.unit3.filter(function (item) {
return item.value == objVal
})
)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.08.2018, 16:51
Ответы с готовыми решениями:

Ошибка сегментации при попытке создать массив
#include <stdio.h> #include <stdlib.h> void init(int* arr, int n) { arr = malloc(n * sizeof(int)); int i; for (i =...

Ошибка при попытке записать символьный массив в файл
Всем доброго дня! Пишу программу на C++, есть 3 символьных массива в которые выполняется ввод, далее полученные данные нужно записать в...

Ошибка при попытке очистить дерево дважды или попытке очистить и заново заполнить
Привет, нужно написать программу с деревьями ( VS, формы) однако возникли проблемы: есть функции - создание, удаление и обходы. Однако...

5
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
03.08.2018, 17:10
JavaScript
1
return dataset[name].filter(...)
0
0 / 0 / 1
Регистрация: 06.02.2017
Сообщений: 20
06.08.2018, 11:07  [ТС]
Цитата Сообщение от j2FunOnly Посмотреть сообщение
JavaScript
1
return dataset[name].filter(...)

Попробовал сделать как описано, теперь выдает: Cannot read property 'filter' of undefined
0
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
06.08.2018, 11:25
Значит у вас где-то опечатка
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var dataSet = {
  "unit1" : [
    {label: 'test1', value: '1'},
    {label: 'test2', value: '2'},
    {label: 'test3', value: '3'},
    ],
    "unit3" : [
        {label: 'record1', value: '1'},
        {label: 'record2', value: '2'},
        {label: 'record3', value: '3'},
    ]
}
 
var selection = filterObject('1', 'unit3');
 
function filterObject(objVal, name) {
  return dataSet[name].filter(function (item) {
    return item.value == objVal
  });
}
 
console.log(selection);
https://jsfiddle.net/j2FunOnly/jb9f0p7x/
1
0 / 0 / 1
Регистрация: 06.02.2017
Сообщений: 20
06.08.2018, 12:00  [ТС]
Цитата Сообщение от j2FunOnly Посмотреть сообщение
Значит у вас где-то опечатка
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var dataSet = {
  "unit1" : [
    {label: 'test1', value: '1'},
    {label: 'test2', value: '2'},
    {label: 'test3', value: '3'},
    ],
    "unit3" : [
        {label: 'record1', value: '1'},
        {label: 'record2', value: '2'},
        {label: 'record3', value: '3'},
    ]
}
 
var selection = filterObject('1', 'unit3');
 
function filterObject(objVal, name) {
  return dataSet[name].filter(function (item) {
    return item.value == objVal
  });
}
 
console.log(selection);
https://jsfiddle.net/j2FunOnly/jb9f0p7x/
Вероятно, что действительно была ошибка в моем коде, попробовал сделать все с нуля на "чистом листе" так сказать - заработало. Спасибо.
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
06.08.2018, 13:17
Цитата Сообщение от jan120117 Посмотреть сообщение
была ошибка в моем коде,
Не было запятых между элементами массивов, и в функции последняя закрывающая скобка должна быть не круглой, а фигурной.
и return dataSet[name]

Стрелочная функция в filter() красивее смотрится:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        let dataSet = {
 
            "unit1": [
                { label: 'test1', value: '1' },
                { label: 'test2', value: '2' },
                { label: 'test3', value: '3' }
            ],
 
            "unit3": [
                { label: 'record1', value: '1' },
                { label: 'record2', value: '2' },
                { label: 'record3', value: '3' }
            ]
        }
 
        let selection = filterObject('1', 'unit3');
 
        function filterObject(objVal, name) {
            return dataSet[name].filter(item => item.value == objVal);
        }
 
        console.log(selection);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.08.2018, 13:17
Помогаю со студенческими работами здесь

"Индекс за пределами диапазона" Ошибка при попытке записи значений dataGridView в массив
Нужно записать значения из ячеек dataGridView в массив. К сожалению перепробовал несколько способов, которые приводили к одной и той же...

Ошибка формирования отчета в СКД: ошибка при попытке вычисления значения агрегатной функции
Решая свою задачку, нарыла формулу, в которой вылазит ошибка. И не могу понять.. Вот формула ВЫБОР КОГДА...

Ошибка при попытке вывести звук при успешном целочисленном делении
Есть переменная score, которая увеличивается от клика по кнопке. Однако при попытке вывести звуковую дорожку при каждом значении score,...

Ошибка при компиляции программы при попытке передать метод объекта в параметры процедуры
Есть вот такой модуль: Unit Corutine; Interface uses DOS; type Myproc = procedure; arr = ^Artype; Artype =...

При попытке добавить программно запись в зашифрованную паролем БД MS Access с помощью метода Insert выскакивает ошибка - Неизвестная ошибка
При попытке добавить программно запись в зашифрованную паролем БД MS Access с помощью метода Insert выскакивает ошибка - Неизвестная ошибка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru