theArray没有定义

时间:2016-04-09 09:06:53

标签: javascript

我尽量避免使用$ .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);

1 个答案:

答案 0 :(得分:0)

这应该解决你的问题。您在array的中间将theArray变量更改为for-loop。 Javascript无法知道,所以你必须更加支持并告诉JS你的意思是哪个数组。

for (var index = 0; index < array.length; i++) {
   if (conditionFunction(array[index])) {
      validValues.push(array[index]);
   }
}