#javascript #arrays #reactjs #object
#javascript #массивы #reactjs #объект
Вопрос:
Массив объектов с 4 свойствами внутри. Я хотел бы получить значение определенного свойства внутри всех объектов внутри этого массива.
Вот несколько кодов, которые я использовал
state = {
Controls: [{
id: null,
property: '',
description: '',
part: '',
}]
}
getPropertyValue(){
const {propertyValue} = document.querySelector('#property').value;
if (propertyValue=== 1){
return
<Input>
<option>1</option>
<option>2</option>;
</Input>;
}
if (propertyValue === 2){
return
<Input>
<option>3</option>
<option>4</option>
</Input>;
} else {
return '';
}
}
это свойство Select Input внутри render()return()
<Input
type="select"
name="property"
id="property"
onChange={(e) => this.onChange(i, e.target.value,
'property')} value={this.getValue(i, 'property')}
placeholder="type"
>
<option value="1">value 1</option>
<option value="2">value 2</option>
</Input>
Я ожидаю, что в результате будет отображен другой ввод выбора, как только пользователь выберет опцию в свойстве Select Input. Выбранное значение во вводе свойства будет определять, какой выбранный ввод будет отображаться или добавлен в форму.
— Дело в том, что ввод этого свойства может быть более одного (поскольку у меня есть кнопка «Добавить», где при нажатии на нее будет добавлен новый ввод свойства). Я хочу получить все значения из ввода свойства (свойство объекта из массива). —
Ответ №1:
Вы можете использовать функцию array.map для перебора массива и возврата значений любого свойства.
getValuesOfProperty(propertyName){
return this.state.Controls.map(object => object[propertyName]);
}
// To get all the ids inside array
const ids = getValuesOfProperty('id');
// To get all the descriptions inside array
const descriptions = getValuesOfProperty('description');