我尽量避免使用$ .grep来过滤需要过滤的内容。在我的情况下,我想删除id为' 123'的对象数组,但是我得到的theArray没有定义错误。
function filter(array, conditionFunction) {
var validValues = [];
for (var index = 0; index < array.length; i++) {
if (conditionFunction(theArray[index])) {
validValues.push(theArray[index]);
}
}
}
var cart = [
{
"id": "123456",
"name": "banana",
"image": "56fca57eb239dc38e355c86b-1459398061689-2013-Le-Tour-de-Langkawi-Stage-5-3.jpg",
"price": 12,
"discount_price": 8,
"qty": 4
},
{
"id": "123",
"name": "Christ come",
"image": "56fcb471b239dc38e355c86c-1459401869191-klcc.jpg",
"price": 12.9,
"discount_price": 11.9,
"qty": 4
}
]
cart = filter(cart, function(e) {
return e.id !== '123';
});
console.log(cart);
答案 0 :(得分:0)
这应该解决你的问题。您在array
的中间将theArray
变量更改为for-loop
。 Javascript无法知道,所以你必须更加支持并告诉JS你的意思是哪个数组。
for (var index = 0; index < array.length; i++) {
if (conditionFunction(array[index])) {
validValues.push(array[index]);
}
}