#javascript #reactjs #react-select
Вопрос:
Я хотел бы установить массив только со значениями из другого массива. Должен ли я использовать для этого push?
ну, в этом случае я пытаюсь получить массив selectedOptions и установить массив selectedTags только со значением selectedOptions
но просто нажмите 1 значение из массива selectedOptions!
Итак, кто-нибудь, пожалуйста, может дать подсказку о том, как сопоставить массив и получить из него значения?
handleChange = (selectedOptions) => {
this.setState({ selectedOptions });
let options = [];
selectedOptions.map((v) => options.push(v.value));
this.setState((state) => ({
selectedTags: options
}));
}
Комментарии:
1. Вы хотите установить
selectedTags
значенияselectedOptions
или конкретное значение изselectedOptions
? Вы ссылаетесь в своем вопросе на оба случая.2. @SinanYaman просто установите выбранные теги со значениями выбранных опций
Ответ №1:
Сопоставление по массиву
Вы можете использовать Array.map
функцию:
const data = [
{id: 1, value: '1'},
{id: 2, value: '2'},
{id: 3, value: '3'},
{id: 4, value: '4'},
{id: 5, value: '5'},
{id: 6, value: '6'},
{id: 7, value: '7'},
]
const onlyValues = data.map(d => d.value)
console.log(onlyValues)
Добавление в массив с помощью спреда
const data = [1,2,3,4,5,6,7,8,9,10]
const toBeAdded = 11
const newData = [...data, toBeAdded]
console.log(newData)
const toBeAddedArray = [11,12,13,14,15,16]
const newDataArray = [...data, ...toBeAddedArray]
console.log(newDataArray)
Комментарии:
1. Привет, Синан, спасибо за ваш интерес, только одно сомнение, как установить другое состояние массива только с значениями?
2. Вы можете сделать
selectedTags: selectedOptions.map(o => o.value)
это внутриsetState