通过jQuery中不同对象的数组中的值过滤对象数组

时间:2017-01-31 15:44:53

标签: javascript jquery arrays

我是jQuery的新手,我很难找到它。我有两个阵列。

var arrayCountries = [{ Code:'NL', Name:'Netherlands'}, { Code:'BE', Name:'Belgium'}, ...];
var arrayCustomers = [{ Code:'C001', Country: 'NL', Group: 'A'}, { Code:'C002', Country: 'BE', Group: 'B'}, ...];

还有一些过滤数据的代码。当用户在'组'选择框中选择一个值时,我需要刷新两个选择框。第一个数组(customerData)按预期填充。但是我不知道如何填充第二个数组。我已经尝试了许多方法,但没有任何快乐。 countryData数组保持为空。

function filterFromGroupChanged(value){
    var customerData = $.grep(arrayCustomers, function (customer, i) { return arrayCustomers.Group === value; });
    refreshCustomers(customerData); // function to refresh a customer selectbox

    var countryData = $.grep(arrayCountries , function (country, i) {
            return $.grep(customerData, function (customer, i) { customer.Country=== country.Code; }).length > 0;
        });
        refreshCountries(countryData); // function to refresh a country select box
}

jQuery grep返回一个数组,所以如果我测试它的长度,我应该能够返回一个true或false来满足第一个grep。但它仍然是空的。

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

看起来我很迟钝。发布后,我再次查看了我的代码,看到了丢失的回复。 (在CAPS下面,以便更好地检测此处共享)

function filterFromGroupChanged(value){
    var customerData = $.grep(arrayCustomers, function (customer, i) { return arrayCustomers.Group === value; });
    refreshCustomers(customerData); // function to refresh a customer selectbox

    var countryData = $.grep(arrayCountries , function (country, i) {
            return $.grep(customerData, function (customer, i) { RETURN customer.Country=== country.Code; }).length > 0;
        });
        refreshCountries(countryData); // function to refresh a country select box
}