映射,并在Javascript中从数组中删除逗号

时间:2018-05-05 00:42:18

标签: javascript

在以下简短脚本中(在我的浏览器中运行):



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;
&#13;
&#13;

我想以最简洁的方式打印一列平方根值(理想情况下使用上面的map方法)。我试图链接一个联接,例如return age.join(' ').Math.sqrt(age) + "<br/>"; but that was unsuccessful (no output was produced).

谢谢。

5 个答案:

答案 0 :(得分:3)

如果要生成(单个)HTML字符串以进行输出,则应使用reduce代替。 .map用于将数组转换为另一个数组

&#13;
&#13;
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;
&#13;
&#13;

答案 1 :(得分:3)

你走在正确的轨道上。只需join()新映射的数组ages3

&#13;
&#13;
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;
&#13;
&#13;

答案 2 :(得分:2)

或者你可以使用array.from

&#13;
&#13;
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;
&#13;
&#13;

答案 3 :(得分:2)

我的解决方案使用joinmap

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