CyberJ
CyberJ

Reputation: 1124

JS create new array from certain item

I have 2 dimensional array myArray:

[
  [ '567576', 'John', 'Doe' ],
  [ '098897', 'John', 'Doe' ],
  [ '543539', 'John', 'Doe' ],
  [ '234235', 'John', 'Doe' ],
  [ '345348', 'John', 'Doe' ],
  [ '432574', 'John', 'Doe' ]
]

Is it possible to create a new array from myArray starting from a certain first value? For example create a new array starting from id 543539. Anything above the array containing 543539 will not be added.

Upvotes: 0

Views: 41

Answers (3)

pape saliou ka
pape saliou ka

Reputation: 512

Yes, that is possible and straightforward process. You can use the javascript map method which returns a new array

newArray = myArray.map(item=> item[0])

Upvotes: 0

ethandjay
ethandjay

Reputation: 61

Sure, assuming all the internal arrays are structured the same way, you can do something like let newArray = myArray.filter(innerArray => Number(innerArray[0]) > 543539)

Edit: This is assuming you want all subarrays where the first item is a number larger than 54539, as opposed to finding all of the subarrays that physically follow the first occurrence of a subarray with 54539 as the first value

Upvotes: 0

sm3sher
sm3sher

Reputation: 3350

You can make use of findIndex() which returns the index of the first item that matches the condition. Combine it with slice() to cut your array at the specific position:

const myArray = [
  ['567576', 'John', 'Doe'],
  ['098897', 'John', 'Doe'],
  ['543539', 'John', 'Doe'],
  ['234235', 'John', 'Doe'],
  ['345348', 'John', 'Doe'],
  ['432574', 'John', 'Doe']
]

console.log(myArray.slice(myArray.findIndex(item => item[0] === "543539")));

Upvotes: 1

Related Questions