Как зациклить множество объектов в массиве

#javascript

Вопрос:

Здравствуйте, у меня есть этот массив

 const arrayId= [{123, 234, 235}, {345, 456, 564, 560, 653}, {455, 444, 678, 567, 789, 542}]

 

Я не хочу замыкаться внутри каждого объекта, чтобы применить каждый элемент к моей конечной точке, чтобы иметь возможность извлекать данные каждого элемента

я делаю это, но это не работает

  await Promise.all(arrayId.map(async (id) => {
            const contents=await myEndpoint.data(app, id);
            console.log(contents)
          }))
 

Пожалуйста, помогите мне

Комментарии:

1. Вы хотите что-то сделать с каждой операцией или подождать, пока каждая операция завершится, а затем что-то сделать?

2. Я хотел бы сравнить данные каждого объекта, чтобы восстановить минимальное значение

3. Каков ваш ожидаемый результат?

4. Кстати, вы не можете использовать {123, 234, 235} его недействительно… Объект должен быть парой key-value

5. Кроме того, что это myEndpoint.data() ? Возвращает ли это обещание ? Вероятно, вам следует включить этот код в свой вопрос.

Ответ №1:

Обычно map используется в таких ситуациях для создания массива обещаний. Затем вы можете использовать Promise.all для ожидания разрешения/отклонения этих обещаний. Затем вы можете использовать Math.min возвращенные данные, чтобы найти минимальное значение.

В этом примере используется набор данных, который соответствует вашему (в основном), и вызов fakeFetch, который возвращает обещание рандомизированных значений на основе идентификаторов в каждом массиве. Он регистрирует окончательные массивы и минимальные значения каждого из них.

 // Accept an array and for each value create a new
// random value. The updated array is sent back as the response
function fakeFetch(arr) {
  const rnd = Math.round(Math.random() * (10 - 1)   1);
  return new Promise(res => {
    const updatedArr = arr.map(el => el * rnd);
    setTimeout(() => res(updatedArr), 2000);
  });
}

// Fetch some data using the array
const myEndpoint = {
  data(arr) { return fakeFetch(arr); }
}

const arr = [[1, 4, 9], [ 2, 10, 4], [ 13, 4, 100 ]];

async function example(arr) {

  // Build an array of promises using the fetch call
  const promises = arr.map(arr => myEndpoint.data(arr));

  // Wait for the response
  const data = await Promise.all(promises);

  // `map` over the arrays to create an array of
  // minimum values
  const mins = data.map(arr => Math.min(...arr));
  console.log(data, mins);
}

example(arr);