我有以下代碼:JavaScript的過濾器和片不能正常工作
conditions.slice(0).filter(condition => condition.processsteptemplate === stepId);
應該切一些對象進行數組。問題是===不匹配,因此所有的元素仍然在數組中......
什麼我的失敗
UPDATE:
示例代碼:
var conditions = [{
id: 14,
conditiontype: 1,
processsteptemplate: 9,
deleted: false,
processTemplate_id: 0
},
{
id: 15,
conditiontype: 1,
processsteptemplate: 9,
deleted: false,
processTemplate_id: 0
},
{
id: 16,
conditiontype: 1,
processsteptemplate: 10,
deleted: false,
processTemplate_id: 0
}
],
stepId = 9;
const output = conditions.slice(0).filter(condition => condition.processsteptemplate === stepId);
console.log(output)
爲什麼'conditions.slice(0).filter'? '過濾器'無論如何會返回另一個數組。 – Rajesh
只是刪除切片? – Felix
嘗試'var output = conditions.filter(x => x.processsTemplate === stepId);的console.log(輸出)'。要點是,'filter'永遠不會操縱你的原始數組。它會返回已過濾值的列表 – Rajesh