Как сгладить массив связанных массивов в JS, как это можно сделать в PHP - PullRequest
0 голосов
/ 11 декабря 2018

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

Я нашел код , который выполняет работу с использованием PHP.Но как я могу сделать это в JS?

PHP

$newArray = array();

foreach($value as $val) {
    $newArray = array_merge($new, $val);
}

JS

var newArray = [];

oldArray.forEach(function(entry){
    newArray = newArray.concat(entry);
});

ОБРАЗЕЦ ДАННЫХ И РЕЗУЛЬТАТ PHP

array(3) {
[0]=>
   array(1) {
      ["name"]=>
      string(8) "John Doe"
   }
[1]=>
   array(1) {
      ["age"]=>
      string(2) "24"
   }
[2]=>
   array(1) {
      ["sex"]=>
      string(4) "male"
  }
}

ДО ЭТОГО

array(3) {
["name"]=>
      string(8) "John Doe"
["age"]=>
      string(2) "24"
["sex"]=>
      string(4) "male"
}

Приведенные выше примеры взяты из вывода PHP, который я также хочу получить в JS.

С моим кодом в js он не удаляет уровень индексов массива.Я хочу удалить индексы массива, чтобы получить простой объект, в котором я могу получить доступ к его данным, например newArray['name'], не проходя через индекс, поскольку его расположение непредсказуемо.

Пожалуйста, дайте мне знать, если у вас есть разъяснения, мне действительно нужна ваша помощь по этому вопросу.

1 Ответ

0 голосов
/ 11 декабря 2018

Если ваши данные похожи на данные примера PHP, это будет массив простых объектов, где у каждого объекта есть одно свойство.

В этом случае используйте Object.assign с синтаксисом распространения:

const oldArray = [ {"age": 13}, {"length": 8} ];

const newArray = Object.assign({}, ...oldArray);

console.log(newArray);
...