我有一个包含文本和HTML的数组。 myarray [1]包含以下内容.. myarray [2]包含相同的东西,只是不同名称'john'等等
153); color: white; cursor: pointer; font-size: 12px; font-weight: normal; font-family:
Arial;" onmouseover="this.style.backgroundColor = 'white'; this.style.color='#336699'"
onmouseout="this.style.backgroundColor = ''; this.style.color = 'white'; "
onclick="if(top.mail.checkDataset()) mail.execFunction('javascript: changeMain(\'orderCreate1.do\')')">
<img alt="" src="images/round-white-bullet.gif" height="10" width="10"> John<br>
我如何对整个数组进行排序,以便在这种情况下忽略所有内容并按名称“john”排序?名称总是在图像之后和br
之前,如果有帮助
答案 0 :(得分:2)
我使用了underscore.js中的sortBy()函数对数组进行排序,它对我来说很有用:http://documentcloud.github.com/underscore/#sortBy
如果Matthias Benkard的回答无法解决您的问题,请查看underscore.js
答案 1 :(得分:1)
问题陈述有点模糊,但一般情况下,您可以使用一些函数对数组进行排序,该函数提取要排序的键(我将在此处调用此函数key
)使用类似于以下内容:
array.sort(function(x, y) {
var x_key = key(x);
var y_key = key(y);
return (x_key < y_key ? -1 : x_key === y_key ? 0 : 1);
});
在您的情况下,key
必须是从数组元素中提取名称的函数。
如果你的数组元素是字符串,你可能想尝试正则表达式:
var key = function(x) {
return /<img[^>]*>([^<]*)<br>/.exec(x)[1];
};