假设我有一个像这样的数组,它被追加到如下的ul中

data['productDetailOptions'] = ['red', 'blue', 'big', 'small', 'medium'];

$('.cart-productDetailOptions ul').append(data['productDetailOptions']);


上面发生的事情没有li标记,我知道我可以肯定地使用for循环遍历每个数组并添加标记,然后将它们分配给新变量。

我想知道是否有更简单,更短的方法,所以我不必使用循环?

编辑:我不好,我应该说使用for循环以外的任何其他方式。抱歉造成误会

最佳答案

每个数组都有.map方法,所以对我来说最有效的方法是这样的:

$('.cart-productDetailOptions ul').append(data['productDetailOptions'].map( item => "<li>"+item+"</li>" ) );


注意:我正在使用ES6箭头功能。哪一个等效:

$('.cart-productDetailOptions ul')
    .append( data['productDetailOptions'].map( function(item) {
        return "<li>"+item+"</li>"
    } ) );


注2:感谢@Dora的评论。实际上是$(..).append accepts both Array and string,因此.join是不必要的。

10-07 23:24