У меня есть массив, который выглядит примерно так:Нахождение индекса массива объекта с Javascript/React.js
var skillsets = [
{id: 'one', name: 'george'},
{id: 'two', name: 'greg'},
{id: 'three', name: 'jason'},
{id: 'four', name: 'jane'},
];
, что я хотел бы сделать, это найти строку на основе значения, заданного в виде идентификатора с Javascript. Например, если я поместил «id = 'two» в функцию, я бы хотел, чтобы «1» возвращалась как строка.
Я знаю, что для массива с одной строкой, skillsets.indexOf ['value'] будет работать, но это не будет работать для этого набора JSON.
Как я могу это достичь?
EDIT:
Skills = React.createClass({
getInitialState: function() {
return { id: 'default' };
},
getIndex(value, arr, prop) {
for(var i = 0; i < arr.length; i++) {
if(arr[i][prop] === value) {
return i;
}
}
return -1; //to handle the case where the value doesn't exist
},
render: function() {
var index = getIndex(id, skillsets, 'id');
return (
<section id="three" className="main style1 special">
<div className="container">
<SkillsHeader skillsets={skillsets[index]}/>
{index}
<SkillsDetails details={details}/>
{index}
</div>
</section>
);
}
});
Или, возможно, вернуть -1, если не найдено, чтобы соответствовать тому, что делает indexOf()? – nnnnnn
Да, это было бы лучше! –
говоря, что getIndex не определено – user1072337