Home > Software design >  How to find all indexes of arrays having a certain value with Javascript?
How to find all indexes of arrays having a certain value with Javascript?

Time:10-29

In the following example code, how can I find all the indexes of any array of year 2021 in the dates? Thank you for any guide!

function test() {
  const dates = [
    'October 31, 2020',
    'November 30, 2020',
    'December 31, 2020',
    'January 31, 2021',
    'February 28, 2021',
    'March 31, 2021',
  ];


  // How should the following code be changed to get indexes of any array of year 2021, which should be 3,4,5?
  // The following code returned only the first array index, 3, not 3,4,5.
  var indexes = dates.findIndex(el => el.includes('2021'));
  console.log(indexes);
}

CodePudding user response:

Use reduce:

/*<ignore>*/console.config({maximize:true,timeStamps:false,autoScroll:false});/*</ignore>*/
function test() {
  const dates = [
'October 31, 2020',
'November 30, 2020',
'December 31, 2020',
'January 31, 2021',
'February 28, 2021',
'March 31, 2021',
  ];


  // The following code returned 3,4,5.
  var indexes = dates.reduce((acc,el,i) => el.includes('2021') ? [...acc,i] : acc,[]);
  console.log(indexes);
}
test()
<!-- https://meta.stackoverflow.com/a/375985/ -->    <script src="https://gh-canon.github.io/stack-snippet-console/console.min.js"></script>
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>

  • Related