jQuery的/ JS:排序基于另一个数组的数组? [英] jQuery/JS: Sorting array based upon another array?

查看:369
本文介绍了jQuery的/ JS:排序基于另一个数组的数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要排序的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆