我在Javascript中有一系列元素,我想根据它的属性进行过滤。
现在,我要过滤的响应对象看起来像:
单个对象可能有"I"
"L"
或"I"
。
我想只获得 referenceDataRecord.filter(isInactive);
function isInactive(obj) {
return obj.row_stat_cd != "L";
};
angular.forEach(referenceDataRecord, function (k, v) {
.........
条记录。所以我做了..
"I"
但仍然referenceDataRecord包含所有记录。它没有被过滤,只保留switch (objectType)
{
case "Armor":
Item compareItem = player.armor;
break;
case "Shield":
Item compareItem = player.shield;
break;
case "Medikit":
Item compareItem = player.medikit;
break;
case "Grenade":
Item compareItem = player.grenade;
break;
case "Weapon":
Item[] compareItem = player.weapons;
break;
case "Bullet":
Item [] compareItem = player.bullets;
break;
default:
return;
}
条记录。
答案 0 :(得分:3)
filter
方法本身不会修改数组。您必须设置对变量的引用
referenceDataRecord = referenceDataRecord.filter(isInactive);
function isInactive(obj) {
return obj.row_stat_cd != "L";
};
angular.forEach(referenceDataRecord, function (k, v) {
filter()方法创建一个 new array ,其中包含通过所提供函数实现的测试的所有元素
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
答案 1 :(得分:1)
Array.prototype.filter返回带有过滤项的新数组。除非您将原始数组分配给函数的输出,否则不会更改原始数组。
referenceDataRecord = referenceDataRecord.filter(isInactive);
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter