我有十二个项目的数组:在JavaScript操纵阵列通过切片
var arrToIterate = [];
arrToIterate = //Data from service to populate;
阵列中的每个项目都有两个字段:名称和标题。
如果假设数组有名称为:
Scenario 1:
[0]: Name: Iron
[1]: Name: Steel
[2]: Name: ContainsIron
[3]: Name: ContainsSteel
[4]: Name : Manganese
[5]: Name: Magnesium
我需要的输出中:
[0]: Name: Iron
[1]: Name: Steel
[2]: Name : Manganese
[3]: Name: Magnesium
Scenario 2:
If suppose the array has Names as :
[0]: Name: Iron
[1]: Name: Steel
[2]: Name : Manganese
[3]: Name: Magnesium
I need the output as:
[0]: Name: Manganese
[1]: Name: Magnesium
我想这样做:
$.each(arrToIterate, function (element, index, arr) {
if (element.Name == "ContainsIron" || element.Name == "ContainsSteel") {
arr.splice(index, 1);
}
});
但第二种情况我没有掌握。我如何实现这两种场景的数组操作?
编辑:
如果数组包含 “ContainsIron”,然后ContainsIron需要被去除,同样地,如果它包含ContainsSteel,然后ContainsSteel需要被去除。
否则
如果阵列犯规包含ContainsSteel,然后钢需要被去除。
如果阵列不包含ContainsIron,然后铁需要删除。
目前还不清楚什么是真正的关系是 - 什么定义哪些元素需要被删除?此外,这是一个情况下,jQuery的弊大于利 - 只是一个简单的for循环会很好。 –
通过使用诸如'.filter'之类的东西来保留原始数组,以功能性的方式解决了问题,它使用'.filter'来返回已过滤项目的新数组。 – ioneyed