Чтение значений объекта Javascript с различными ключами - PullRequest
0 голосов
/ 04 мая 2020

Я ищу решение для следующей проблемы. Я работаю с объектом, который выглядит:

0: {userId: 139, moveId: 169, moveName: "FirstRoadMove", building: {…}}
1: {userId: 139, moveId: 171, moveName: "FirstRoadMove", building: {…}}
2: {userId: 139, moveId: 173, moveName: "FirstRoadMove", building: {…}}
3: {userId: 139, moveId: 175, moveName: "FirstRoadMove", building: {…}}
4: {userId: 139, moveId: 177, moveName: "FirstRoadMove", building: {…}}
5: {userId: 139, moveId: 179, moveName: "FirstRoadMove", building: {…}}

И у меня также есть компонент:

    <button className={`actionBoxButton ${props.moves[0].moveName !== "FirstSettlementMove"  ? "actionBoxButtonGrey" : ''}`}

Я пытаюсь добиться не только проверки кнопки, если Первые элементы ходов имеют ключ со значением FirstSettlementMove, например, но каждый элемент объекта. Так что в полупсевдо-что-то вроде:

    <button className={`actionBoxButton ${props.moves[first to last].moveName !== "FirstSettlementMove"  ? "actionBoxButtonGrey" : ''}`}

Заранее спасибо!

1 Ответ

2 голосов
/ 04 мая 2020

Вы можете изменить свой образ мыслей. Вместо того, чтобы пытаться проверить все подчиненные объекты с помощью moveName = firstSettleMentMove, вы можете проверить, существует ли подчиненный объект без этого значения, выполнив следующие действия:

props.move.filter(x => x.moveName !== 'FirstSettlementMove').length > 0

Если props.move isn это не массив, вы все равно можете использовать Array.from(props.move) для его преобразования.

Кроме того, если ваш объект имеет индексы, как вы нам показали, вы можете «удалить» его с помощью Object.values(props.move).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...