我有一些这样的信息,这些不是对象..只是个人数据
name : 'element1', x: 30, y : 35
name : 'element2', x : 10, y:16
name : 'element3', x: 70, y:11
我已将所有三个信息推送到三个不同的数组
var elmArray = ['element1','element2','element3'];
var xArray = [30, 10, 70];
var yArray = [35, 16, 11];
按 asc
顺序对 xArray
和 yArray
进行排序
xArray.sort(function(a, b){return a - b});
yArray.sort(function(a, b){return a - b});
我的问题是如何根据 xArray
和 yArray
对 elmArray
进行排序
例如在 xArray
排序后我想要这样的 elmArray
['element2', 'element1', 'element3'];
在 yArray
之后我想要这样
['element3', 'element2', 'element1'];
最佳答案
首先,您必须将数据放入对象数组。
var arr = [
{name : 'element1' ,x: 30, y : 35},
{name : 'element2', x : 10, y:16},
{name :'element3', x: 70, y:11}];
那么你就知道如何对数组进行排序了!
arr.sort(function(a,b){ return a.x - b.x; } ); // sort by x
一旦排序,如果你想要一个只包含一个属性的数组,你可以使用 .map
var names = arr.map(function(e) { return e.name; });
关于javascript - 在javascript中自定义排序,基于另一个字段排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31452681/