【问题标题】:jQuery use of parameter as JSON field value - misinterpreting [duplicate]jQuery将参数用作JSON字段值 - 误解[重复]
【发布时间】:2020-02-15 10:50:55
【问题描述】:

我对 jQuery 函数参数的使用感到困惑。见最后的问题...

数据 JSON - data.json 文件。

[{
        "id": 1,
        "first_name": "Jeanette",
        "last_name": "Penddreth",
        "email": "jpenddreth0@census.gov",
        "gender": "Female",
        "ip_address": "26.58.193.2"
    },
    {
        "id": 2,
        "first_name": "Giavani",
        "last_name": "Frediani",
        "email": "gfrediani1@senate.gov",
        "gender": "Male",
        "ip_address": "229.179.4.212"
    },
    {
        "id": 3,
        "first_name": "Noell",
        "last_name": "Bea",
        "email": "nbea2@imageshack.us",
        "gender": "Female",
        "ip_address": "180.66.162.255"
    },
    {
        "id": 4,
        "first_name": "Willard",
        "last_name": "Valek",
        "email": "wvalek3@vk.com",
        "gender": "Male",
        "ip_address": "67.76.188.26"
    }
]

完整的 HTML + JS 源代码

<!DOCTYPE html>
<html>

<head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.core.js"></script>
    <meta charset="utf-8">
    <title> Filter Test
    </title>

</head>

<body>
    <pre id="test"></pre>
</body>

<script>
    var dataFiltered = function() {
        var _data = [];
        var filter = {};
        this.ReadData = function() {
            $.ajax({
                    url: "data.json",
                    dataType: "json",
                    type: 'get',
                    async: false,
                    // mimeType: "textPlain",
                })
                .done(function(data) {
                    _data = data;
                });
        }
        this.ReadData();
        this.SetFilter = function(field, value) {
            filter = {...filter,
                "gender": value,
            };
            let _new = _.filter(_data, filter);
            return _new;
        }
        var txt = JSON.stringify(this.SetFilter('gender', 'Male'), undefined, 2);
        $("#test").html(txt);
    }
    data = new dataFiltered();
</script>


</html>

我希望 SetFilter 函数中的“列”参数用于过滤器设置,例如

        this.SetFilter = function(field, value) {
            filter = {...filter,
              field: value,
            };
            let _new = _.filter(_data, filter);
            return _new;
        }

不幸的是,列被误解了(对我说),并且过滤器设置为搜索名为“字段”而不是“性别”的列的数据。

我应该怎么做? 谢谢。

【问题讨论】:

    标签: jquery function parameter-passing lodash


    【解决方案1】:

    好的,在这里找到我的解决方案:How To Set A JS object property name from a variable

    我只需要这样写:

            filter = {...filter,
                [column]: value,
            };
    

    我会尽快关闭(2 天):)

    【讨论】:

      猜你喜欢
      • 2023-04-11
      • 2023-03-15
      • 1970-01-01
      • 2019-01-29
      • 2016-05-08
      • 2017-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多