将数组的每个元素相加即可将数组转换成字符串?

时间:2018-12-17 16:20:18

标签: javascript arrays string

var array = ['a', 'b', 'c']
function arrayTransform(array) {
  if (array.lengths === 0) {
    console.log("Empty")
  } else {
    console.log(array.join());
  }
}

arrayTransform(array);

结果应为1.a,2.b,3.c 我正在获取abc

4 个答案:

答案 0 :(得分:1)

您可以将增加的索引与值映射,并将其加入所需的样式。

var array = ['a', 'b', 'c']
function arrayTransform(array) {
  if (array.lengths === 0) {
    console.log("Empty")
  } else {
    console.log(array.map((v, i) => [i + 1, v].join('.')).join());
  }
}

arrayTransform(array);

答案 1 :(得分:1)

您似乎拥有添加带有元素的索引的权利。在这种情况下,请使用map函数,该函数将返回一个数组,然后使用join创建最终字符串

var array = ['a', 'b', 'c']

function arrayTransform(array) {
  if (array.lengths === 0) {
    console.log("Empty")
  } else {
    return array.map((item, index) => {
      return `${index+1}.${item}` // template literals

    }).join()
  }
}

console.log(arrayTransform(array));

答案 2 :(得分:0)

您可以使用.reduce()来获取结果字符串:

let data = ['a', 'b', 'c'];

let reducer = arr => arr.length ?
                     arr.reduce((r, c, i) => (r.push(`${i + 1}.${c}`), r), []).join() :
                     'Empty';

console.log(reducer(data));
console.log(reducer([]));

答案 3 :(得分:0)

欢迎使用Stackoverflow。 您介意使用以下共享的ES6解决方案吗?让我知道您是否需要在ES5中使用它。

    <div class="col input-group mb-3">
  <div class="input-group-prepend">
    <span class="input-group-text">Receiver</span>
  </div>
  <mat-form-field>
    <input matInput [matAutocomplete]="auto" type="text" class="form-control" (ngModelChange)="change()" [(ngModel)]="terms[receiver]" [ngModelOptions]="{standalone: true}" >
    <mat-autocomplete #auto="matAutocomplete">
      <mat-option *ngFor="let document of documents" [value]="document._source.field.Receiver">
        <span>{{document._source.field.Receiver}}</span>
      </mat-option>
    </mat-autocomplete>
  </mat-form-field>
</div>