как получить доступ к конкретному элементу объекта в массиве - PullRequest
0 голосов
/ 24 февраля 2019

Я использовал функцию карты для использования Reduce, и я получил массив объектов.Как я могу получить определенное значение в «возврате»?

Ниже вывод консоли

{design job: Array(2)}
design job: Array(2)
0:
fullName: "Rakesh"
phoneno: "1111111111"
__proto__: Object
1:
fullName: "test user"
phoneno: "9176837787"
__proto__: Object
length: 2
__proto__: Array(0)
__proto__: Object

Ниже мой код

const list = appliedCandidates.reduce(
  (appliedCandidate, { Title, fullName, phoneno }) => {
    (appliedCandidate[Title] = appliedCandidate[Title] || []).push({
      fullName: fullName,
      phoneno: phoneno
    });
    return appliedCandidate;
  },
  {}
);
console.log(list);

return (
  <div>
    {Object.keys(list).map((item, i) => {
      return (
        <ul>
          {item}
          <li key={i}>{item.fullName}</li>
        </ul>
      );
    })}
  </div>
);

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

function iMGroot() {
  let appliedCandidates = [{
      Title: 'title-1',
      fullName: 'fullName-1',
      phoneno: 'phoneno-1'
    },
    {
      Title: 'title-11',
      fullName: 'fullName-11',
      phoneno: 'phoneno-11'
    },
    {
      Title: 'title-12',
      fullName: 'fullName-12',
      phoneno: 'phoneno-12'
    },
    {
      Title: 'title-13',
      fullName: 'fullName-13',
      phoneno: 'phoneno-13'
    }, {
      Title: 'title-14',
      fullName: 'fullName-14',
      phoneno: 'phoneno-14'
    }
  ]
  const list = appliedCandidates.reduce(
    (appliedCandidate, {
      Title,
      fullName,
      phoneno
    }) => {
      (appliedCandidate[Title] = appliedCandidate[Title] || []).push({
        fullName: fullName,
        phoneno: phoneno
      });
      return appliedCandidate;
    }, {}
  );
  console.log(list);

  return ( `<div> ${Object.keys(list).map((item, i) => {
      return (
        `<ul>
          ${list[item].map(lItem=>{
            return `
            <li>${lItem.fullName}</li>
            <li>${lItem.phoneno}</li>
            `
          })}
        </ul>`
      )
    })}</div>`
  );

}

console.log(iMGroot())

PS: см. Оператор возврата функции iMGroot.Поскольку определение appliedCandidates отсутствует, я заполнил его в приведенной выше функции.

0 голосов
/ 24 февраля 2019

Предположим, что ваши данные выглядят так:

 const jobs = {
   "design job": [
     {
       fullName: "Rakesh",
       phoneno: "1111111111"
     },
     {
       fullName: "test user",
       phoneno: "9176837787"
     }
   ],
   "another job": [
     {
       fullName: "Rakesh",
       phoneno: "1111111111"
     },
     {
       fullName: "test user 2",
       phoneno: "9176837787"
     }
   ]
 };

Вот код, который возвращает JSX для отображения всех заданий и для каждого задания всех кандидатов:

 return Object.entries(jobs).map(([title, candidates]) => (
   <ul>
     <h3>{title}</h3>
     {candidates.map((c, i) => (
       <li key={i}>{c.fullName}</li>
     ))}
   </ul>
 ));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...