Underscore.js `filter` 不工作
Underscore.js `filter` not working
我使用以下代码片段从用户选择的列表中选择哪些郊区(省略了不相关的代码):
var allSuburbsList = new Array([{"SuburbID":1,"SuburbAreaID":3,"SuburbName":"Alberante","SuburbActive":true,"Area":null,"Agents":[]},{"SuburbID":4,"SuburbAreaID":3,"SuburbName":"Alberton North","SuburbActive":true,"Area":null,"Agents":[]}]);
var a3burbs = _.filter(allSuburbsList, function(s) { return s.SuburbAreaID === 3; });
// 3 is a test value. All the test suburbs so far fall under area no. 3.
使用此过滤器后,a3burbs
会显示为空数组 []
。如果我作弊并制作过滤器:
var a3burbs = _.filter(allSuburbsList, function(s) { return true; });
然后 a3bubrs
出现 allSuburbsList
的精确副本,包括所有郊区。我做错了什么?我使用的语法与 Underscore.js 主页上显示的语法相同。
顺便说一句,我从视图模型数组 属性 填充 allSuburbsList
的方式是否与此有任何关系:
var allSuburbsList = new Array(@Html.Raw(JsonConvert.SerializeObject(Model.AllSuburbs)));
出于兴趣,我的第一次尝试是下面可怕的代码,但它起作用了:
var a3burbs = [];
@{for (var i = 0; i < Model.AllSuburbs.Length; i++) {
@:if (allSuburbsList[@i].SuburbAreaID === 3) {
@:a3burbs.push(allSuburbsList[@i]);
};
};
您正在创建一个新数组并且传入一个数组。
改为
var allSuburbsList = [{"SuburbID":1,"SuburbAreaID":3,"SuburbName":"Alberante","SuburbActive":true,"Area":null,"Agents":[]},{"SuburbID":4,"SuburbAreaID":3,"SuburbName":"Alberton North","SuburbActive":true,"Area":null,"Agents":[]}];
使用new Array([{}])
,您正在另一个数组中创建一个数组。只需在没有 new Array()
的情况下实例化
我使用以下代码片段从用户选择的列表中选择哪些郊区(省略了不相关的代码):
var allSuburbsList = new Array([{"SuburbID":1,"SuburbAreaID":3,"SuburbName":"Alberante","SuburbActive":true,"Area":null,"Agents":[]},{"SuburbID":4,"SuburbAreaID":3,"SuburbName":"Alberton North","SuburbActive":true,"Area":null,"Agents":[]}]);
var a3burbs = _.filter(allSuburbsList, function(s) { return s.SuburbAreaID === 3; });
// 3 is a test value. All the test suburbs so far fall under area no. 3.
使用此过滤器后,a3burbs
会显示为空数组 []
。如果我作弊并制作过滤器:
var a3burbs = _.filter(allSuburbsList, function(s) { return true; });
然后 a3bubrs
出现 allSuburbsList
的精确副本,包括所有郊区。我做错了什么?我使用的语法与 Underscore.js 主页上显示的语法相同。
顺便说一句,我从视图模型数组 属性 填充 allSuburbsList
的方式是否与此有任何关系:
var allSuburbsList = new Array(@Html.Raw(JsonConvert.SerializeObject(Model.AllSuburbs)));
出于兴趣,我的第一次尝试是下面可怕的代码,但它起作用了:
var a3burbs = [];
@{for (var i = 0; i < Model.AllSuburbs.Length; i++) {
@:if (allSuburbsList[@i].SuburbAreaID === 3) {
@:a3burbs.push(allSuburbsList[@i]);
};
};
您正在创建一个新数组并且传入一个数组。
改为
var allSuburbsList = [{"SuburbID":1,"SuburbAreaID":3,"SuburbName":"Alberante","SuburbActive":true,"Area":null,"Agents":[]},{"SuburbID":4,"SuburbAreaID":3,"SuburbName":"Alberton North","SuburbActive":true,"Area":null,"Agents":[]}];
使用new Array([{}])
,您正在另一个数组中创建一个数组。只需在没有 new Array()