我有一个字符串数组。我想使用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);
答案 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