JS - 将数组项组合在一个项目中

时间:2016-03-14 13:45:01

标签: javascript

例如,我想收集一些标签(让我们说段落): var tagsCollection = document.getElementsByTagName('p'); var tagsCollectionLength = tagsCollection.length 我循环(迭代): for(var i = 0; i< tagsCollectionLength; i ++) { //得到一个数组: var tagsCollectionArray = tagsCollection [i]; } 现在该做什么来将所有数组项目作为一个项目: 所以看起来不像:   [第1段第2段第3段] 但是喜欢:   [paragraph1paragraph2paragraph3] 我确实试过加入。 CONCAT。没有成功可能我做错了什么,任何帮助表示赞赏。谢谢。

3 个答案:

答案 0 :(得分:5)

您可以将变量保留在for之外,将字符串附加到for内,当for完成时,将其推入数组内。 这是如何做到的 -

var tagsCollection = document.getElementsByTagName('p');
var tagsCollectionLength = tagsCollection.length;
var tags = "", tagsCollectionArray = [];

for (var i = 0; i < tagsCollectionLength; i++)
{
   tags = tags + tagsCollection[i];
}
tagsCollectionArray.push(tags);

答案 1 :(得分:1)

假设您有html

<div>
  <p>a</p>
  <p>b</p>
  <p>c</p>
  <p>d</p>
  <p>e</p>
</div>

假设您想要的结果是所有段落内容(Array)的[paragraph1paragraph2paragraph3],那么您可以执行以下操作:

tagsCollection = document.getElementsByTagName('p');

var ar = [];
for(var i = 0; i < tagsCollection.length; i++ ) {
  ar.push(tagsCollection[i].innerText)
}
console.log([ar.join('')]) // => ["abcde"]

请参阅this fiddle

答案 2 :(得分:0)

正如我已经评论过的,您可以使用Array.join("")

JSFiddle

(function() {
  var data = [];
  var str = [].map.call(document.getElementsByTagName('p'), function(item) {
    return item.innerHTML;
  }).join("");
  data.push(str);
  document.write("<pre>" + JSON.stringify(data) + "</pre>");
})()
<p>hello</p>
<p>workd</p>
<p>test</p>