Угловой преобразовать массив в строку - PullRequest
0 голосов
/ 07 марта 2019

У меня есть следующий массив (testArray), и я хочу извлечь все состояния в строку («Аризона», «Аляска», «Флорида», «Гавайи», «Гуджарат», «Гоа», «Пенджаб»). ..). Есть ли более простые способы сделать это?

let testArray: State[];
testArray = this.getStates();

getStates() {
 return [
  new State(1, 1, 'Arizona'),
  new State(2, 1, 'Alaska'),
  new State(3, 1, 'Florida'),
  new State(4, 1, 'Hawaii'),
  new State(5, 2, 'Gujarat'),
  new State(6, 2, 'Goa'),
  new State(7, 2, 'Punjab'),
  new State(8, 3, 'Queensland'),
  new State(9, 3, 'South Australia'),
  new State(10, 3, 'Tasmania'),
  new State(11, 4, 'Penang')
 ];
}

Ответы [ 2 ]

3 голосов
/ 07 марта 2019

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

getStates().map(x=>x.StateName).join(",")

Пример приведен ниже

function State(id,val,StateName) {
  this.id = id;
  this.val = val;
  this.StateName = StateName;
}

function getStates() {
 return [
  new State(1, 1, 'Arizona'),
  new State(2, 1, 'Alaska'),
  new State(3, 1, 'Florida'),
  new State(4, 1, 'Hawaii'),
  new State(5, 2, 'Gujarat'),
  new State(6, 2, 'Goa'),
  new State(7, 2, 'Punjab'),
  new State(8, 3, 'Queensland'),
  new State(9, 3, 'South Australia'),
  new State(10, 3, 'Tasmania'),
  new State(11, 4, 'Penang')
 ];
}

//Simplest Way is as follows
console.log(getStates().map(x=>x.StateName).join(","))
1 голос
/ 07 марта 2019

Другое решение, использующее сокращение .

getStates().reduce((current, value, index) => {
    if(index > 0)
        current += ',';

    return current + value.StateName;
}, '');

Как полный фрагмент:

function State(id,val,StateName) {
  this.id = id;
  this.val = val;
  this.StateName = StateName;
}

function getStates() {
 return [
  new State(1, 1, 'Arizona'),
  new State(2, 1, 'Alaska'),
  new State(3, 1, 'Florida'),
  new State(4, 1, 'Hawaii'),
  new State(5, 2, 'Gujarat'),
  new State(6, 2, 'Goa'),
  new State(7, 2, 'Punjab'),
  new State(8, 3, 'Queensland'),
  new State(9, 3, 'South Australia'),
  new State(10, 3, 'Tasmania'),
  new State(11, 4, 'Penang')
 ];
}

var merged = getStates().reduce((current, value, index) => {
    if(index > 0)
        current += ',';

    return current + value.StateName;
}, '');

console.log(merged);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...