Преобразовать массив строк в массив объектов, используя Lodash - PullRequest
0 голосов
/ 04 сентября 2018

Есть ли простой способ в lodash принять это:

const sampleSource = [
  "String 1",
  "String 2",
]

И получите это:

[
  {id: "String 1", text: "String 1"},
  {id: "String 2", text: "String 2"},
]

Мне нужно отформатировать его так, чтобы он перешел в сторонний компонент реакции. Я немного поиграл с .map и .zipObject, но так и не смог сделать это правильно.

Я думал, что-то вроде этого должно работать:

_.chain(sampleSource).map(s => ({ id: s, text: s })).value()

Но это дает мне:

[
  {
    id: ["String 1", "String 2"],
    text: ["String 1", "String 2"],
  }
]

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Как то так. Добавлен пример цепочки.

const sampleSource = [
  "String 1",
  "String 2",
]

let result = _.map(sampleSource, function(item) {
  return {id: item, text: item};
});

console.log(result);

let result2 = _.chain(sampleSource).map(function(item) {
  return {id: item, text: item};
});

console.log(result2);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>
0 голосов
/ 04 сентября 2018

Для этого вам не нужен lodash, обычный JavaScript .map() должен работать.

const sampleSource = [
  "String 1",
  "String 2",
];

const result = sampleSource.map(s => ({id: s, text: s}));
console.log(result);
...