【发布时间】:2015-05-20 18:46:44
【问题描述】:
我正在尝试使用 linq.js 来匹配通过属性定位对象。我需要匹配的属性在数组对象中,然后嵌套在数组数组中。
我正在循环的Json
customSeries = [{"name":"Chantal Hamlet - Green Castle Homes","subId":"10223","bldId":"13551","data":[[179900,1386],[214900,1440],[194500,1496],[217900,1504],[189900,1542],[184900,1546],[192500,1570],[189900,1576],[191900,1598],[204900,1626],[219900,1651],[212900,1704],[214900,1787],[219900,1837],[224900,1857]],"removeByNames":[["null"],["null"],["null"],["null"],["null"],["null"],["null"],["null"],["null"],["null"],["null"],["null"],["null"],["null"],["null"]]},{"name":"Ella Sea Condos - Sahnow Construction","subId":"9761","bldId":"27380","data":[[199900,1500]],"removeByNames":[["null"]]},{"style":"smooth","color":"blue","data":[[20000,200],[40000,400],[[40000,400]],[30000,300],[[30000,300]]],"name":"Subject Property","removeByNames":[["Product1"],["Product2"],["Product3"]]}]
要匹配的项目
var modelName = 'Product2'
javascript
remove: function (e) {
removeByNames = []
var modelName = e.model.name;
// Enumerate through the series
var customSeriesSearchResults = Enumerable.From(customSeries)
.Where(function (item) {
// Enumerate through the series.removeByNames
return Enumerable.From(item.removeByNames).Any(function (modelName) {
// Find matching removeByNames.name
return Enumerable.From(removeByNames).Contains(modelName);
})
})
.ToArray();
}
【问题讨论】:
-
customersWithProduct2 = customSeries.filter(function(customer){ return customer.modelname === 'Product2';}) -
您的
removeByNames数组与字符串数组和字符串数组数组混合...您需要将其压平或其他什么。 -
@agconti 我需要与modelName匹配的属性位于removeByNames
-
@JeffMercado 我会在哪里弄平它?
-
理想情况下,它将在数据源处进行清理。对我来说,那里的很多数据都是垃圾。它需要清理干净。这不是客户端代码的责任。
标签: javascript arrays json linq.js