我有以下功能:爲什麼我不能調用函數,但我可以在控制檯中打印它? JavaScript的
var groceries = ["toothpaste", ["plums", "peaches", "pineapples"], ["carrots", "corn", "green beans"], "orange juice", ["chocolate", "ice cream"], "paper towels", "fish"];
console.log("groceries", groceries);
function removeItems(arr, toRemove) {
function createKey(item) {
return Array.isArray(item) ? item.join('-') : item;
}
var removeDict = toRemove.reduce(function(d, item) {
var key = createKey(item);
d[key] = true;
return d;
}, {});
console.log("removeDict", removeDict);
return arr.filter(function(item) {
var key = createKey(item);
return !removeDict[key];
});
}
var result = removeItems(groceries, ["fish", "orange juice", ["chocolate", "ice cream"]]);
console.log("result", result);
(這來源於此之前的問題,我問): function to remove single items or arrays from within an array - javascript
如果我創建在調用該函數結束一個變量,它打印在控制檯正確。
但是,如果我嘗試直接調用該函數,就像這樣:
removeItems(groceries, ["fish", "orange juice", ["chocolate", "ice cream"]]);
console.log("groceries", groceries);
的項目沒有得到清除。爲什麼我不能直接調用該函數?我錯過了什麼嗎?
因爲該函數返回一個新的數組,你丟棄 –