gpt4 book ai didi

javascript - 试图在 javascript 中理解 .some()

转载 作者:行者123 更新时间:2023-11-30 11:42:36 24 4
gpt4 key购买 nike

这是来自 https://bl.ocks.org/mbostock/4183330 的部分代码

我想了解 names.some(function(d)...}) 是如何工作的。

  1. 传递给 .some() 的匿名函数不应该返回一个可以评估“countires”的条件语句吗?

  2. names.some(..) 什么时候返回 true 或 false?

  3. 为什么 d.name = n.name 不在没有“return”的情况下在“countries”中创建“name”属性?

queue()
.defer(d3.json, "world-110m.json")
.defer(d3.tsv, "world-country-names.tsv")
.await(ready);

function ready(error, world, names) {
var countries = topojson.feature(world,world.objects.countries).features
countries = countries.filter(function(d) {
return names.some(function(n) {
if (d.id == n.id) return d.name = n.name;
});
})

最佳答案

1) 由于它使用 names.some(),该函数正在测试 names 的每个元素,而不是 countries

2) 当任何名称的 idd.id 匹配且 n.name 不为空时。

3) 它将始终创建属性。但是,如果没有 return.some() 就不会得到它可以计算的真值。

如果他们写成这样可能会更容易理解:

return names.some(function(n) {
if (d.id == n.id) {
d.name = n.name;
return d.name;
} else {
return false;
}
});

return d.name = n.name; 将赋值和返回值合并到一个语句中。代码利用了函数在不执行 return 语句时隐式返回 undefined 的事实,而 undefined 是错误的。

关于javascript - 试图在 javascript 中理解 .some(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42076371/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com