【问题标题】:Angular Convert Array into string角度将数组转换为字符串
【发布时间】:2019-07-29 01:49:25
【问题描述】:

我有以下数组(testArray),我希望将所有状态提取到字符串('Arizona'、'Alaska'、'Florida'、'Hawaii'、'Gujarat'、'Goa'、'Punjab'。 ..)。有没有更简单的方法来做到这一点?

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')
 ];
}

【问题讨论】:

  • 这取决于类 State 的定义方式,顺便说一句,它与 Angular 无关。 Angular 只是一个框架,它只是一个打字稿功能
  • @CristianTraìna 实际上 TypeScript 只是 JavaScript 的一种方言,在运行时并不存在。这是 javascript 功能 :)
  • 上面说的和JavaScript有关,可以使用map函数提取像testArray.map((state) => { return state.name})这样的值
  • @NikhilWalvekar 或干脆testArray.map( state => state.name )

标签: javascript arrays angular


【解决方案1】:

array 转换为逗号分隔的string 最简单的方法是

var commaSeperatedString = arrayName.toString(); 

【讨论】:

    【解决方案2】:

    使用reduce 的另一种解决方案。

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

    作为一个完整的sn-p:

    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);

    【讨论】:

      【解决方案3】:

      最简单的方法如下

      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(","))

      【讨论】:

      • @scholarwithfire 欢迎:)
      猜你喜欢
      • 1970-01-01
      • 2018-07-20
      • 2019-01-16
      • 2017-08-21
      • 1970-01-01
      • 2019-11-12
      • 2014-07-22
      • 2017-11-27
      相关资源
      最近更新 更多