我正在尝试过滤一组对象。但是要过滤的对象的属性在其他地方定义为变量,而不是 100% 我如何构造点符号语法。
所以我有一个这样的数组对象
var listings = [
{"id" : "1", "name":"a name", "surname" : "a surname"},
{"id" : "2", "name":"b name", "surname" : "b surname"},
{"id" : "3", "name":"c name", "surname" : "c surname"}
]
我有一个变量,指定要过滤的对象的哪些属性。此变量并不总是设置为名称。在上面的示例中,它可以在 id、name 或 surname 上。
var filter = 'id'
要查找的过滤器 val 的 var
var filterVal = '2'
然后我有这个 grep 电话。
listings = $.grep(listings, function (obj, index) {
return obj.id === filterVal;
});
但我想要的不是 obj.id 硬编码,而是:
obj."value of filter variable" === filterVal
提前致谢
本