Удалить массив из json массива относительно условия в React JSX - PullRequest
0 голосов
/ 11 февраля 2020

Как удалить массив из массива json в реакции js. Я попробовал что-то подобное. но не работает

Теперь ответ прямо установлен на atate следующим образом

let { newData} = response;

, пожалуйста, помогите отфильтровать элемент. Либо из ответа, либо из переменной состояния

response.map((res, index) => {
    if (res.status==1) {
    res.splice(index, 1) // remove element
};
})

ответом является [объект объекта] при получении оповещения

[
{id:1, status:1},
{id:2, status:0},
{id:3, status:1},
]

Ответы [ 3 ]

2 голосов
/ 11 февраля 2020

Используйте фильтр вместо карты и отфильтруйте нежелательный объект / ы.

const filteredArray = response.filter((res) => res.status !== 1);

Пожалуйста, имейте в виду, что это создаст новый массив, а не изменит ваш исходный массив.

1 голос
/ 11 февраля 2020

Вы должны создать новый массив, Вы можете попробовать ..

let temp = []
response.forEach((res, index) => {
    if (res.status !== 1) {
        temp.push(res)
    }
})
0 голосов
/ 11 февраля 2020

Лучшее решение - использовать метод фильтра, или, если вы все еще хотите использовать соединение, это должен быть response.splice
Примечание. Использование подхода соединения неправильно, как указано @VLAZ, поскольку это сдвигает элементы, но индексирование forEach будет продолжаться независимо от сращенных элементов.

   var response = [
    {id:1, status:1},
    {id:2, status:0},
    {id:3, status:1},
    ]
    
    
    response.forEach((res, index) => {
        if (res.status==1) {
        response.splice(index, 1) // remove element
    };
    })
    
    console.log(response);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...