Цикл внутри Цикла, когда условие удовлетворяется, должен возвращать newsingleArray - PullRequest
0 голосов
/ 28 октября 2019

У меня есть два цикла, когда условие выполнено, я хочу вернуть один массив. Мой массив конфигурации выглядит следующим образом

"configuration": [
            {
               "position": "O",
                "side": "L",
                "type": 21,
                "wheel": 1,
                "wheels": 20
            },
            {
                "position": "I",
                "side": "L",
                "type": 21,
                "wheel": 2,
                "wheels": 20
            },
]

Мой массив датчиков выглядит следующим образом

“Sensor”: [
            {
                "pressure": 8126,
                "sub_item": "1",
                "temp": 16,
                "time": 1572243074,
            },
            {
                "pressure": 8205,
                "sub_item": "10",
                "temp": 18.3,
                "time": 1572243092,
            },
]

Я перебираю массив датчиков из массива конфигурации и задаю условие здесь

let finalarray = []
configuration.forEach((e1) => sensorData.forEach((e2) => {
  if (e1.wheel == e2.sub_item) {
    finalarray.push(e1)
    finalarray.push(e2)
    console.log(JSON.stringify(finalarray))
  }
}
))

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

1 Ответ

0 голосов
/ 28 октября 2019

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

const configuration = [
            {
               "position": "O",
                "side": "L",
                "type": 21,
                "wheel": 1,
                "wheels": 20
            },
            {
                "position": "I",
                "side": "L",
                "type": 21,
                "wheel": 2,
                "wheels": 20
            },
    ] 
    const sensorData = [
            {
                "pressure": 8126,
                "sub_item": "1",
                "temp": 16,
                "time": 1572243074,
            },
            {
                "pressure": 8205,
                "sub_item": "10",
                "temp": 18.3,
                "time": 1572243092,
            },
    ]
    let finalarray = []
    configuration.forEach((e1) => sensorData.forEach((e2) => {
      if (e1.wheel == e2.sub_item) {
        finalarray.push({...e1, ...e2})
      }
    }))
    console.log(finalarray)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...