Reputation: 1124
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
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
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
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