我有一个项目列表,其中包括一个人和他们工作的公司。我需要能够按公司对列表进行分组,然后显示为该公司工作的所有人员。
例如:
<div class="name"> John Doe </div>
<div class="company"> ABC Company </div>
<div class="name"> Jane Smith</div>
<div class="company"> ABC Company </div>
<div class="name"> Bill Williams </div>
<div class="company"> XYZ Company </div>
<div class="name"> Beth Wilson </div>
<div class="company"> XYZ Company </div>
我希望输出显示:
ABC公司 约翰·多伊 简史密斯
XYZ公司 贝丝威尔逊 比尔威廉姆斯
有关如何对该数据进行分组的任何建议
感谢。
答案 0 :(得分:3)
应该这样做..
var group = {} // this will keep our entire structure..
$('.company').each( // for each company element
function(){
// grab the name of the company
var name = $(this).text();
// if it has not been inserted in the group (first time we encounter this company)
if (!(name in group))
group[name] = []; // we create the company key, and relate it to an array that will hold the persons
// grab the persons name (the preceding one)
var person = $(this).prev('.name').text();
// add him to the company list of persons ..
group[name].push(person);
}
)
// check for ABC company
alert(group[' ABC Company ']);