我希望我正在解释这项权利;例如,我想要匹配值的user_id:id:在返回的jSON数组/对象中,如下所示...

[{"user_id":"1","value":"92056,92054,92018"},{"user_id":"3","value":"92056"},
{"user_id":"2","value":"Massachusetts, Wyoming, Tennessee"},
{"user_id":"5","value":"California"},
{"user_id":"9","value":"New Mexico, Mississippi, Washington"},
{"user_id":"11","value":"Nevada"},{"user_id":"8","value":"Oklahoma, Louisiana"},
{"user_id":"6","value":"Montana, Oregon"},
{"user_id":"10","value":"Virginia, Illinois"}]


例如,如果我的来源是92056,则我想获得“ 1”,因为我的92056的user_id是“ 1”。

如果是新墨西哥州,我想输入“ 9”,依此类推。

该值可以包含几百个邮政编码,因此,我想一种快速搜索这些值或类似值的方法,因为它将永远不会重复。每个user_id将具有多个唯一的区域或“值”。

如果出现这种情况,我将使用PHP从数据库中提取数据,然后将其传递到JavaScript变量中(在Wordpress中)。

 <?php
        global $wpdb;
        $fullPHP = $wpdb->get_results("SELECT user_id, value FROM " . "refer_cimy_uef_data;");
 ?>
        var phpreps = JSON.stringify(<?php echo json_encode($fullPHP); ?>);
        $("#phpoutput").html(phpreps);

最佳答案

您对自己太难了。将“值”属性转换为数组,然后再将其发送到浏览器客户端,只需在每个值数组上使用indexOf来检查搜索查询是否存在。在下面的代码中,底部的搜索功能非常简单。第一部分是一些客户端转换代码,用于将您的值属性转换为适当的数组。

//pre-process the data to put 'value' into an array. This would be better done from the server in the initial response.

var input = (function(){

    var arr = [
        {"user_id":"1","value":"92056,92054,92018"},{"user_id":"3","value":"92056"},
        {"user_id":"2","value":"Massachusetts, Wyoming, Tennessee"},
        {"user_id":"5","value":"California"},
        {"user_id":"9","value":"New Mexico, Mississippi, Washington"},
        {"user_id":"11","value":"Nevada"},
        {"user_id":"8","value":"Oklahoma, Louisiana"},
        {"user_id":"6","value":"Montana, Oregon"},
        {"user_id":"10","value":"Virginia, Illinois"}
    ];

    arr.forEach(function(item, index){ //remove extra space from some splitting
        arr[index].value = arr[index].value.replace(/,\s/gi,',').split(',');
    });

    return arr;

})();


var search = function(val){

    for(var i=0, len=input.length; i<len; i++){

        if( input[i].value.indexOf(val) > -1 ) return input[i].user_id;

    }

    return null;

}

console.log( search('New Mexico') );

09-09 21:05
查看更多