JavaScript - 按对象属性值排序列表

时间:2017-04-25 17:30:04

标签: javascript

我们说我有一个这样的清单:

var list = [{
    title: 'Green',
    data: {
      test: 'world'
    }
  }, {
    title: 'Blue',
    data: {
      test: 'world'
    }
  }, {
    title: 'Red',
    data: {
      test: 'world'
    }
  }];

我有一个像这样的简单数组:var orderList = ['Red', 'Green', 'Blue']

如果list数组被创建(及其随机),我将如何制作它,然后按orderBy的顺序对其进行排序?因此,如果数组项titleRed ...它会被置于顶部,如果它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;
&#13;
&#13;

0 个答案:

没有答案