Получение одного из значений / состояний объекта внутри массива

#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');