如何在jQuery中的选择器返回的值上创建折叠?

| 说我有一些HTML元素:
<div>First</div>
<div>Second</div>
<div>Third</div>
我通过以下方式选择了谁的内容:
$(\'div\').text();
如何在元素上进行\“ foldl \”操作(迭代,累加结果),例如使用换行符将它们联接?
$(\'div\').text().foldl(\'\', function(){ ... join_or_whatever ... })
    
已邀请:
        根据Wikipedia上有关折叠的文章,JavaScript的Array.reduce()(用于foldl)和Array.reduceRight()(用于foldr)函数提供数组折叠。 因此,您的特定任务变为:
var result = $.makeArray($(\'div\')).reduce(function(prev,curr){ 
        return prev + \'\\n\' + $(curr).text() 
});
请注意,并非所有JavaScript实现都支持reduce和reduceRight,因此如果需要,请参见此示例实现。 更新:由于jQuery不会为$(selector)返回真实的数组,并且某些平台不支持jQuery的\“ array-like \”集合上的reduce和reduceRight,因此我将答案更新为使用$ .makeArray(),如下所示。感谢@royas的帮助。     
        我不确定是什么折叠 这是您迭代和连接的方式:
var newArray = [];
//\'div\' is an outer container of your inner divs
$(\'div\').each(function(index, Element) {
    newArray.push($(this).text());
});

$(\'body\').append(newArray.join(\'\'));
    
        我想我理解您所说的“折叠”是什么意思,不确定... 但是尝试一下:
var finalStr = \"\";
$(\'div\').each(function(index) {
   finalStr += $(this).text() + \"<br>\";
});
可在以下网址获得:http://api.jquery.com/each/     

要回复问题请先登录注册