在以下简短脚本中(在我的浏览器中运行):
var ages = [23, 22, 4, 101, 14, 78, 90, 2, 1, 89, 19];
const ages3 = ages.map(function(age) {
return Math.sqrt(age) + "<br/>";
});
document.write(ages3);
&#13;
我想以最简洁的方式打印一列平方根值(理想情况下使用上面的map方法)。我试图链接一个联接,例如return age.join(' ').Math.sqrt(age) + "<br/>"; but that was unsuccessful (no output was produced).
谢谢。
答案 0 :(得分:3)
如果要生成(单个)HTML字符串以进行输出,则应使用reduce
代替。 .map
用于将数组转换为另一个数组。
const ages = [23, 22, 4, 101, 14, 78, 90, 2, 1, 89, 19];
const ages3 = ages.reduce(function(accum, age) {
return accum + Math.sqrt(age) + "<br/>";
}, '');
document.write(ages3);
&#13;
答案 1 :(得分:3)
你走在正确的轨道上。只需join()
新映射的数组ages3
var ages = [23, 22, 4, 101, 14, 78, 90, 2, 1, 89, 19];
const ages3 = ages.map(function(age) {
return Math.sqrt(age) + "<br/>";
});
document.write(ages3.join(' '));
&#13;
答案 2 :(得分:2)
或者你可以使用array.from
const ages = [23, 22, 4, 101, 14, 78, 90, 2, 1, 89, 19];
document.write(Array.from(ages, x => Math.sqrt(x)).join('<br\>'));
&#13;
答案 3 :(得分:2)
我的解决方案使用join
和map
。
var ages = [23, 22, 4, 101, 14, 78, 90, 2, 1, 89, 19];
document.write(ages.map(a => Math.sqrt(a)).join("<br>"));
我认为这个解决方案非常简洁,可以满足您的需求。
答案 4 :(得分:0)
如果要在结果之间添加新行,则可以在侧连接功能中传递
只需在此行:-返回Math.sqrt(age).join('
');
如果要在结果之间留空格,则可以在连接函数jus中传递空字符串,如下所示:-返回Math.sqrt(age).join('';;
或者,如果您什么都不想要,则可以像下面这样在jpin函数中不做任何事情:
var ages = [23, 22, 4, 101, 14, 78, 90, 2, 1, 89, 19];
const ages3 = ages.map(function(age) {
return Math.sqrt(age).join('<br\>');
// return Math.sqrt(age).join(' ');
// return Math.sqrt(age).join('');
});
document.write(ages3);