I have data similiar to this
const data = [ 'one', [ {id: 1, value: 'A'}, {id: 2, value: 'B'} ], 'two', [ {id: 3, value: 'C'}, {id: 4, value: 'D'} ], 'three', [ {id: 5, value: 'E'}, {id: 6, value: 'F'} ], ]
just looking for a way to find the array for a given “key” for example find the array after the element ‘two’
obviously
const myArray = data['two']
does not work
I am currently solving with the following.
let myResult = []; for (let i = 0; i < data.length; i++) { if (data[i] === 'two') myResult = data[i + 1]; } console.log(myResult);
but there must be a more concise way.
https://jsfiddle.net/yjb7hfk4/
Advertisement
Answer
Use indexOf()
to find the index of the string, then add 1 to get the result.
const data = [ 'one', [ {id: 1, value: 'A'}, {id: 2, value: 'B'} ], 'two', [ {id: 3, value: 'C'}, {id: 4, value: 'D'} ], 'three', [ {id: 5, value: 'E'}, {id: 6, value: 'F'} ], ] let index = data.indexOf("two"); let myResult; if (index != -1) { myResult = data[index+1]; console.log(myResult); }