ms-dred
@ms-dred
Вечно что то не то и что то не так...

Как получить пересобрать массив что получить такие данные?

Не пойму как попроще сделать, может быть поможете
Я создал 2 цикла с обещание (Promise.all), после каждого обхода хотел удалить первый элемент массива, но потом понял что не прокатит и в край запутался ))
Есть массив со словами, для наглядности просто буквы оставил
[
    "a",
    "b",
    "c"
]

Он может быть и из большего количества слов (букв)
Нужно получить следующее
[
    "a - b",
    "a - c",
    "b - c"
]


Пока только вот до такой конструкции докумекал
return Promise.all(t.map(async e => {
    return Promise.all(t.map(async e2 => {
        if(e !== e2) return `${e} - ${e2}`
    })).then(e => {
        return e.splice(e.indexOf(undefined)+1)
    }).then(e => {
        return console.log(e)
    })
}))
  • Вопрос задан
  • 876 просмотров
Решения вопроса 1
@StockholmSyndrome
data.reduce((acc, curr, i) => [...acc, ...data.slice(i + 1).map((item) => `${curr} - ${item}`)], []);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Scorpi
@Scorpi
let result = [];
for (let i = 0; i < data.length; i++) {
  for (let j = i + 1; j < data.length; j++) {
    result.push(data[i] + " - " + data[j]);
  }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы