Ваша проблема не имеет ничего общего с AngularJS , поэтому я переписал ее простым JavaScript:
$scope = {};
$scope.myDataList = [{name:"one,two"},{name:"three"},{name:"four"},{name:"five,eight,nine"}]
$scope.myArray = $scope.myDataList.map(({ name }) => name.split(','))
.reduce((result, splitElement) => result.concat(splitElement), []);
console.log($scope.myArray);
Обратите внимание, что следующая строка в вашем коде
$scope.myArray.push(value.name);
помещает неразбитые строки, такие как 'five,eight,nine'
, в $scope.myArray
.Это не то, что вы хотите.Кроме того, $scope.myArray.split(',')
не удастся, так как Array.prototype
не имеет функции split
.
Один из способов достижения правильного результата - отобразить исходный массив и разбить каждый элемент (в результате получается массивстроковые массивы).После этого вы можете объединить внутренние строковые массивы, используя Array.concat
.Это то, что делают следующие две строки:
$scope.myArray = $scope.myDataList.map(({ name }) => name.split(','))
.reduce((result, splitElement) => result.concat(splitElement), []);