构建此字符串的最快方法
Fastest way to build this string
假设我有一个对象数组,里面有html字符串(还有其他东西,但我特别关注每个对象的html属性。例如
var items = [{
html: '<div>test</div>'
}, {
html: '<div>test</div>'
}, {
html: '<div>test</div>'
}];
我需要使用所有这些字符串来构建一个字符串,并且我需要它们的顺序与它们给我的顺序相同,所以一个反向while循环就结束了。
在构建html方面有什么比下面更快的吗?
var html = [];
for (var i = 0, itemLen = items.length; i < itemLen; i++) {
html.push(items[i].html)
}
output.innerHTML = html.join('');
更快的是:
var html = '';
for (var i = 0, itemLen = items.length; i < itemLen; ++i)
html += items[i].html;
output.innerHTML = html;
编辑:
这更快:
var html = '';
for (var i = 0, itemLen = items.length; i < itemLen; html += items[i++].html);
这比您的快得多
var html = '';
for (var i = 0, itemLen = items.length; i < itemLen; i++) {
html += items[i].html;
}
output.innerHTML = html;
var html = '';
for (var i = 0, itemLen = items.length; i < itemLen; i++) {
html += items[i].html;
}
output.innerHTML = html
简单地连接到一个字符串将比构建一个数组并内爆它更快,因为从技术上讲,这是对数据的双循环,而不是一次循环。
这也起到了作用:
var items = [
{html: '<div>test</div>'},
{html: '<div>test</div>'},
{html: '<div>test</div>'}],
newString = "";
items.forEach(function(item) {
newString = newString + item.html;
});
演示。
警告这是一个解决方案,可能会导致很多问题。但它确实提供了一种相对快速的方式来做你想做的事。
var items = [{
html: '<div>test</div>'
}, {
html: '<div>test</div>'
}, {
html: '<div>test</div>'
}];
Object.prototype.toString=function(){return this.html};
items.join('');
如果首先要控制添加到数组中的对象,那么您只能更改该对象的原型,这不会干扰全局对象。
相关文章:
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- 在JavaScript中拆分日期字符串的更好方法是什么
- 用Javascript重新格式化复杂文本日期字符串的更好方法
- 用javascript修复这个JSON对象字符串最干净的方法是什么
- jQuery字符串使用split()方法在空格后拆分字符串
- 使用查询字符串方法清除浏览器缓存
- 检查变量是否为字符串的简单方法
- 使用.join方法将数组转换为不带逗号的字符串
- Javascript:不使用.split()方法拆分字符串
- 使用子字符串方法时应用程序挂起的原因
- 如何更改字符串的查找方法
- 什么时候字符串不是字符串?当它没有 include() 方法时
- get没有方法“writefile”,即使输入是一个字符串
- 在JavaScript中,有没有一种方法可以解析JSON,将数字转换为字符串
- 使用 MVC 删除 JavaScript 中硬编码字符串 Asp.Net 最佳方法
- 使用 eval 从字符串创建函数的不同方法
- Javascript CharAt 方法不适用于字符串
- Javascript方法以字符串形式返回方法代码
- 为什么String的方法.字符串字面值可用的原型
- 如何在javascript参数函数中传递PHP post方法字符串