forEach循环,用于javascript中的字符串数组

时间:2019-05-22 15:34:52

标签: javascript arrays foreach

我有一个字符串数组。我想使用forEach循环将字符串填充到一个空字符串变量中。在控制台中,我可以同时打印(l和r)。我想将每个值打印一次到filltext中。我不想加入字符串。我在做什么错了?

ch_labels = ['l', 'r'];

let ch = '';

let _ch_text = this.ch_labels.forEach(function(value) {
  console.log('channel names:', value);
  ch = value;
});

this.canvas.fillText(ch, 0, 0, 0);

console.log('names', ch);

3 个答案:

答案 0 :(得分:2)

您可以尝试以下代码:

ch_labels = ['l', 'r'];

ch_labels.forEach(function(value, index) {
  console.log('channel names:', value);
  this.canvas.fillText(value, 0, index * 30);
});

它将把您的频道吸引到另一个

答案 1 :(得分:1)

要获得预期的输出,您需要将值连接到ch变量中,而不是像下面这样定义值:

ch += value;

此外,请注意,您不能直接写到画布。 canvas.fillText将不确定。使用context代替canvas

因此,您的代码应为:

canvas = document.querySelector("canvas");
context = canvas.getContext("2d");

ch_labels = ['l', 'r'];

let ch = '';

this.ch_labels.forEach(function(value,index) {
  console.log('channel names:', value);
  this.context.fillText(ch, (index+1)*30, 10 );
  ch += value;
});

console.log('names', ch);
<canvas width="200" height="200"></canvas>

答案 2 :(得分:0)

ch_labels = ['l', 'r'];

let ch = '';

let _ch_text = this.ch_labels.forEach(function(value) {
  console.log('channel names:', value);
  ch += value;
});

console.log('names', ch);

问题是您正在重新分配值,可以使用ch = ch + value或缩短方式ch + = value