我需要将对象映射(服务器响应)转换为数组,并通过对象的键对其进行排序。
假设:
var ppl = {
1: { name: 'Fred', age: 31 },
0: { name: 'Alice', age: 33 },
3: { name: 'Frank', age: 34 },
2: { name: 'Mary', age: 36 }
}
console.log(ppl);
创建时的对象似乎按键排序,控制台显示:
{
0: { name: 'Alice', age: 33 }
1: { name: 'Fred', age: 31 }
2: { name: 'Mary', age: 36 }
3: { name: 'Frank', age: 34 }
}
然后我使用lodash转换为这样的数组:
var arr = _.toArray(ppl);
console.log(arr)
答案 0 :(得分:2)
使用_.chain()
方法很容易做到:
var ppl = {
1: { name: 'Fred', age: 31 },
0: { name: 'Alice', age: 33 },
3: { name: 'Frank', age: 34 },
2: { name: 'Mary', age: 36 }
};
const output = _.chain(ppl)
.toArray()
.sortBy()
.value();
console.log(output);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js"></script>