为什么过滤器不能提供与迭代一样的结果?

我已经提取对象的数组,从下面的原始数据:https://gist.githubusercontent.com/Miserlou/c5cd8364bf9b2420bb29/raw/2bf258763cdddd704f8ffd3ea9a3e81d25e2c6f6/cities.json为什么过滤器不能提供与迭代一样的结果?

我只想说,数据看起来是这样的:

[0 ... 99] : 城市 : “纽约” growth_from_2000_to_2013 : “4.8%” 纬度 : 40.7127837 经度 : -74.005 9413 人口 : “8405837” 排名 : “1” 状态 : “纽约” 原 : 对象: {城市: “洛杉矶”,growth_from_2000_to_2013:“ 4.8%“,纬度:34.0522342,经度:-118.2436849,人口:”3884307“,...}

我已将此存储为const JSON_LOCS,在下面的代码中引用。

我试图过滤下来寻找包含一些特定测试的城市。我已经通过两种不同的方式接近它。一种方法似乎可行,但Array.prototype.filter()没有。

const test = []; 

for (let t of JSON_LOCS) {

if (t.city.includes('las')) {

test.push(t);

}

}

const test2 = JSON_LOCS.filter(loc => { // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

loc.city.includes('las');

});

console.log(test); // Yields a couple of results

console.log(test2); // Always empty! :(

回答:

代替此行

oc.city.includes('las'); 

写这条线

return oc.city.includes('las'); 

你只是忘记了这一步的,在这种情况下,将返回undefined

回答:

删除{}

const test2 = JSON_LOCS.filter(loc => { // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter 

loc.city.includes('las');

});

const test2 = JSON_LOCS.filter(loc => // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter 

loc.city.includes('las'); // When not wrapped into {} it assumes its the return statement

);

以上是 为什么过滤器不能提供与迭代一样的结果? 的全部内容, 来源链接: utcz.com/qa/265739.html

回到顶部