jQuery的/ JS:排序基于另一个数组的数组? [英] jQuery/JS: Sorting array based upon another array?
问题描述
我要排序的JSON对象/数组(如下图所示为 myArray的
),在从另一个数组值 - 非常接近MySQL查询 MYSQL凡(1,2,3)
。我能得到一个由尼克Craver伟大的答案如何由一个属性和值进行排序的,但我怎么能做到这一点具有多个值从我的其他数组?
这里是我的数据集JSON数组:
myarray的无功= [
{
ID:2
名:我的名字,
属性:{为prop1:值1}
}];
和我想在排序的数组(序列化,从形式来直):
VAR sortArray = [{为prop1:值1,prop2:值2}];
,因为它看起来现在目前的排序功能(礼貌尼克Craver):
函数filterDataset(属性值){
变种newArray = []; 对于(VAR I = 0,1 = myArray.length; I<升;我++){
如果(myarray的[I]的.properties [属性] ===值)
newArray.push(myarray的[I]);
}
返回newArray;
}
下面是我如何设法解决它:
函数filterDataset2(属性){
变种newArray = []; 对于(VAR I = 0,1 = dataset.length; I<升;我++){ $。每个(性能,功能(){
如果(数据集[I]的.properties [this.name] === THIS.VALUE)
newArray.push(myarray的[I]);
}); } 返回newArray;
}
I want to sort a JSON object/array (shown below as myArray
), upon values from another array - very close to the MYSQL query MYSQL WHERE IN(1,2,3)
. I was able to get a great answer by Nick Craver on how to sort by one property and value, but how can I do this with multiple values from my other array?
Here's my dataset Json array:
var myArray = [
{
"id":"2",
"name":"My name",
"properties":{"prop1":"value1"}
}];
And the array which I want to sort upon (serialized, coming straight from a form):
var sortArray = [ { "prop1":"value1","prop2":"value2" }];
The current sorting function as it looks right now (courtesy Nick Craver):
function filterDataset(property, value){
var newArray = [];
for (var i = 0, l = myArray.length; i < l; i++) {
if (myArray[i].properties[property] === value)
newArray.push(myArray[i]);
}
return newArray;
}
Here's how I managed to fix it:
function filterDataset2(properties){
var newArray = [];
for (var i = 0, l = dataset.length; i < l; i++) {
$.each(properties, function(){
if (dataset[i].properties[this.name] === this.value)
newArray.push(myArray[i]);
});
}
return newArray;
}
这篇关于jQuery的/ JS:排序基于另一个数组的数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!