我们说我有一个这样的清单:
var list = [{
title: 'Green',
data: {
test: 'world'
}
}, {
title: 'Blue',
data: {
test: 'world'
}
}, {
title: 'Red',
data: {
test: 'world'
}
}];
我有一个像这样的简单数组:var orderList = ['Red', 'Green', 'Blue']
。
如果list
数组被创建(及其随机),我将如何制作它,然后按orderBy
的顺序对其进行排序?因此,如果数组项title
为Red
...它会被置于顶部,如果它Green
...它会低于{Red
1}}对象。
编辑:这不是排序A-Z,因为我想从orderList
所在的顺序列出它。
问题发生在用户选择时,让我们说Green
,好......它应该是第一个但是由于某种原因,我得到null, Green
或类似的东西。
var randomBtn = document.querySelector('.random');
var orderIt = document.querySelector('.orderIt');
var selectedList = document.querySelector('.selectedList');
var orderedList = document.querySelector('.orderedList');
orderIt.addEventListener('click', function(e) {
orderBy(list);
});
var list = [{
title: 'Green',
data: {
test: 'world'
}
}, {
title: 'Blue',
data: {
test: 'world'
}
}];
selectedList.innerHTML = JSON.stringify(list, null, 4)
var orderList = ['Red', 'Green', 'Blue'];
var orderBy = function(list) {
var tempArr = [];
for (var i = 0; i < list.length; i++) {
var getItem = list.filter(function(e) {
return e.title === orderList[i];
})[0];
tempArr.push(getItem);
}
orderedList.innerHTML = JSON.stringify(tempArr, null, 4);
}
&#13;
<button class='orderIt'>Order by Heiarchy</button>
<br /><br />
<pre class='selectedList'></pre>
Ordered List: must always be RED, GREEN, BLUE.
<pre class='orderedList'></pre>
&#13;