Undefined не является функцией data [index] .push - PullRequest
0 голосов
/ 16 мая 2019

У меня есть массив с именем:

const data = []

Я сделал функцию, где я зацикливаю true для массива, чтобы проверить, существует ли имя.

 let index = data.findIndex(x => x.name == csh.val().color);
                console.log(index); <-- gives me the right index back
                console.log(data);
                console.log(data[index].population); <-- this gives me the right value back
                if (index === -1) {
                    data.push({
                        name: csh.val().color,
                        population: csh.val().color ? 1 : 1,
                        color: csh.val().color.toLowerCase(),
                        legendFontColor: '#7F7F7F',
                        legendFontSize: 15
                    });
                }else {
                    if(data && data[index]) {
                        data[index].push({
                            name: csh.val().color,
                            population: data[index].population + 1,
                            color: csh.val().color.toLowerCase(),
                            legendFontColor: '#7F7F7F',
                            legendFontSize: 15
                        })
                    }
                }

Но я получаю ошибкув операторе else с именем: undefined не является функцией в этой строке:

data[index].push({

UPDATE:

Вот так выглядит массив:

    const data = [
    { name: "brown", population: 5, color: 'brown', legendFontColor: '#7F7F7F', legendFontSize: 15 },
{ name: "red", population: 5, color: 'brown', legendFontColor: '#7F7F7F', legendFontSize: 15 },
]

1 Ответ

1 голос
/ 16 мая 2019
 let index = data.findIndex(x => x.name == csh.val().color);
                console.log(index); <-- gives me the right index back
                console.log(data);
                console.log(data[index].population); <-- this gives me the right value back
                if (index === -1) {
                    data.push({
                        name: csh.val().color,
                        population: csh.val().color ? 1 : 1,
                        color: csh.val().color.toLowerCase(),
                        legendFontColor: '#7F7F7F',
                        legendFontSize: 15
                    });
                }else {
                       data[index] = {
                            name: csh.val().color,
                            population: data[index].population + 1,
                            color: csh.val().color.toLowerCase(),
                            legendFontColor: '#7F7F7F',
                            legendFontSize: 15
                        }
                }
...