Javascript:排序对象挑战
我有一点挑战。我正在用javascript开发一个物理应用程序。使用的两个主要对象是Javascript:排序对象挑战,javascript,arrays,sorting,object,multidimensional-array,Javascript,Arrays,Sorting,Object,Multidimensional Array,我有一点挑战。我正在用javascript开发一个物理应用程序。使用的两个主要对象是 var force = new Object(); var torque = new Object(); with properties force.magnitude = newArray(); force.lengthfromorigin = new Array(); force.count; torque.lengthfromorigin= new Array(); torque.count; 现在,我
var force = new Object();
var torque = new Object();
with properties
force.magnitude = newArray();
force.lengthfromorigin = new Array();
force.count;
torque.lengthfromorigin= new Array();
torque.count;
现在,我想根据这两个对象各自的Length FromOriginance将其排序为一个数组
示例:force.lengthfromorigin=[5,8]和torque.lengthfromorigin=[2,6]
所以它们在这个新数组中的顺序是[torque[0],force[0],torque[1],force[1]]
我的问题是否可以将不同对象的数组按其各自的属性进行排序,然后在函数中使用此数组,该函数将根据索引中的对象做出决策。我还需要在每个相应的对象中都有一个id属性,以确定该对象是扭矩还是力
例如:
if(newArray[i] == torque)
//do stuff
else
//do other stuff.
也许是这样的 让我解释一下算法:
对象中的每个对象
:
2.1将当前对象称为obj
if(Mydata[i].Name = 'torque'){
//your code goes here
}
else if(Mydata[i].Name = 'force'){
//your code goes here
}
2.2使用map
生成一个新数组,称为[obj,num]元组的tuples
对于每个lengthFromOrigin
obj的编号
if(Mydata[i].Name = 'torque'){
//your code goes here
}
else if(Mydata[i].Name = 'force'){
//your code goes here
}
3.3将元组的所有项推入Aif(Mydata[i].Name = 'torque'){
//your code goes here
}
else if(Mydata[i].Name = 'force'){
//your code goes here
}
sorted.forEach(function (tuple) {
console.log(tuple[0].type, tuple[1]);
});
//torque 2
//force 5
//torque 6
//force 8
答案是肯定的 但是,在访问每个对象的属性之前,必须识别它们。在您的情况下,这两个对象都有一个名为lengthfromorigin的公共属性,可用于对它们进行正确排序 要识别每个对象,可以使用类似于ID或Name的属性
if(Mydata[i].Name = 'torque'){
//your code goes here
}
else if(Mydata[i].Name = 'force'){
//your code goes here
}
希望这将帮助你1)很可能,2)请在下一个例子中使用你的第一个例子。我认为你试图一下子解决太多问题。我会先为一个整数数组编写一个排序方法,然后从那里开始工作。它的伪代码@PsychHalf…为什么不使用面向对象的原则,在每个对象类型上放置一个通用的命名方法,可以为该类型的对象执行所需的代码,这样你就不必看它是什么类型了?@bala,如果您计划经常这样做,显然可以将算法封装到函数中;)