Как проверить каждый элемент массива и вывести только некоторые из них - PullRequest
0 голосов
/ 03 мая 2020

Я новичок, чтобы отреагировать и у меня есть проект. Я могу перебрать все массивы, распечатать их все. Как бы то ни было, я просто хочу проверить свой массив и показать его, только если в нем указана c информация. Это мой основной итерационный код.

      state = {
        top: [card1],
        bottom: [card2],
        rear: [card3],
        bottom2: [card4],
        bottom3: [card5],
        mycards: [card7,card8],
        myinfo: ["asd","card8"],
        transition: {
          item: null,
          startTop: 20,
          startAnim: true,
        }
      }

              <div ref={(node) => { this.mycardinfo = node; }}>
              {myinfo.map((item) => {
                const startTop = transition.item === item ? transition.startTop : 0;
                const animClass = transition.startAnim ? 'item-force-move' : '';
                const style = {
                  transform: `translateY(${startTop}px)`,
                }
                return (
                  <div 
                    className={`item item-mycard ${animClass}`}
                    onClick={(evt) => this.delete(item, evt)}
                    style={style}
                  >
                                {item}

                  </div>

Я хочу отобразить только мой элемент "card8". Однако, поскольку он проходит по всему массиву, он показывает и «asd», и «card8».

Ответы [ 2 ]

0 голосов
/ 03 мая 2020

Просто используйте оператор if и верните ноль, если вы не хотите отображать его:

if (item === "YOUR_CARD"){
  return <div>{item}</div>;
}else{
  return null;
}

Редактировать: Как уже отмечали другие, вы также можете отфильтровать массив сначала, а затем сопоставьте его:

myinfo.filter(item => item === "YOUR_CARD")

Если вам нужна только одна карта, используйте array.find, и вы получите один элемент обратно:

myinfo.find(item => item === "YOUR_CARD")
0 голосов
/ 03 мая 2020

Я бы просто применил фильтр для извлечения элемента:

myinfo.filter(item=> item === "card8")[0]

В зависимости от того, будет ли у вас несколько элементов «asd», вы можете удалить индексацию. Фильтр вернет список всех элементов, которые соответствуют условному тесту, в данном случае item==="asd"

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