Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Извлечь объект из массива и использовать ключ и значение (https://javascript.ru/forum/misc/81199-izvlech-obekt-iz-massiva-i-ispolzovat-klyuch-i-znachenie.html)

alvovich09 19.10.2020 17:24

Извлечь объект из массива и использовать ключ и значение
 
Всем привет! Столкнулся с такой задачей по курсу React. Нужно извлечь объект из массива и использовать пару ключ-значение. Ключ как уникальный key и значение как value для создания элемента. Хотел использовать _get из lodash, но не получается. Вопрос касается не react, а именно JS, поэтому задаю вопрос здесь.

class Component extends React.Component {
  constructor(props) {
      super(props);
    this.state = {
      value: 0,
      logs: []
    };
   }
  
  increment = () => {
   const { value, logs } = this.state; 
     const currentNumber = value + 1;
     const uniqKey = _.uniqueId();
     this.setState({ value: currentNumber, logs: [{ [uniqKey]: currentNumber}, ...logs] });
 };

 decrement = () => {
   const {value, logs } = this.state;
     const currentNumber = value - 1;
     const uniqKey = _.uniqueId();
     this.setState({ value: currentNumber, logs: [{ [uniqKey]: currentNumber}, ...logs] });
 };

  removedItem = (uniqKey) => (e) => {
     e.preventDefault();
     const newLogs = this.state.logs.filter(log => log.uniqKey !== uniqKey);
     this.setState({ logs: newLogs });
   };
  
  render() {
    const { value, logs } = this.state;
    return (
        <div>
        <div className="btn-group" role="group">
        <button type="button" className="btn hexlet-inc" onClick={this.increment}>+</button>
        <button type="button" className="btn hexlet-dec" onClick={this.decrement}>-</button>
    </div>
      { logs.length > 0 &&
      <div className="list-group">
     {logs.map(_.get(log) => <button type="button" onClick={this.removedItem(uniqKey)} className="list-group-item list-group-item-action" key={uniqKey}>{log}</button>)}
      </div>}
    </div>
    );
  } 
}

Nexus 19.10.2020 18:09

Цитата:

Сообщение от alvovich09
Нужно извлечь объект из массива и использовать пару ключ-значение.

Вы лучше по-русски вопрос задайте, а то что вы хотите не ясно.

alvovich09 19.10.2020 18:52

Задачу решил. Тему можно удалить.


Часовой пояс GMT +3, время: 23:04.