我是否以适当的方式进行回调?

时间:2019-03-04 19:53:48

标签: javascript

运行以下代码时,出现以下错误:

  

ReferenceError:未定义数组

为什么说数组未定义?

    {
        "id": 5,
        "name": "key.jpg",
        "hash": "045a33af53ad4efe9dd0cdc80173e792",
        "sha256": "hLIpLA5JHEKfjfnAhgr9HqvKpNkm1QH1J-kvrIkGogQ",
        "ext": ".jpg",
        "mime": "image/jpeg",
        "size": "4238.72",
        "url": "/uploads/045a33af53ad4efe9dd0cdc80173e792.jpg",
        "provider": "local",
        "public_id": null,
        "created_at": 1551723193383,
        "updated_at": 1551723193411,
        "related": [
        ]
    }

2 个答案:

答案 0 :(得分:1)

因此,您需要在代码中添加几个返回值。在尝试取回数据时,为此,您需要使用return in函数。 当您没有将任何数据存储到数组时,使用forEach也是一个好主意。但是var newArray =不会返回任何内容,因为forEach不返回数组。 希望这会有所帮助。

var names = ["Lars", "Jan", "Peter", "Bo", "Frederik", "Anna"];

function myfilter(array, callback) {
  return callback(array);
}

function turnaround(array) {
  var newFilter = [];
  array.forEach(function(name) {
    if (name.indexOf("a") > -1) {
       newFilter.push(name);
    }
  });
  console.log(newFilter)
  return newFilter;
}

console.log(myfilter(names, turnaround));

答案 1 :(得分:1)

这应该可以工作,并且通过使用过滤器可以简化一些事情,因为您要生成一个新的数组。

var names = ["Lars", "Jan", "Peter", "Bo", "Frederik", "Anna"];

function myfilter(array, callback) {
  return callback(array);
}

function turnaround(array) {
  return array.filter(name => name.indexOf("a") > -1);
}

console.log(myfilter(names, turnaround));