这个速记功能在js中是否可行?

时间:2015-03-23 13:07:38

标签: javascript

在JavaScript中,可以进行内联函数返回,例如:

$.each([1,2,3], function(index, variation) {
    html_bar += '<li class="foo '+ (return (index === 1) ? 'active': '' ;)+'">bar</li>';
});

以上当然不起作用,只是想知道是否存在以下任何速记函数:

$.each([1,2,3], function(index, variation) {
    var active = (index === 1) ? 'active': '' ;
    html_bar += '<li class="foo '+ active +'">bar</li>';
});

3 个答案:

答案 0 :(得分:2)

我不知道,如果我的问题是正确的,那么

$.each([1,2,3], function(index, variation) {
    html_bar += '<li class="foo '+ (index === 1? 'active' : '')+'">bar</li>';
});

答案 1 :(得分:2)

为什么要从.each回调中返回一些内容?谁应该收到返回值?

使用这种结构的全部意义在于产生所谓的副作用,而无需通过显式迭代逐个命令这些操作。

在您的情况下,副作用是将字符添加到字符串html_bar,最终可以在页面中成为某些标记。只需从第一个示例中删除“return”语句即可。

答案 2 :(得分:1)

只需删除return

即可
html_bar += '<li class="foo '+ (index === 1 ? 'active': '') +'">bar</li>';