我不明白 every() 方法如何知道它应该比较哪些项目。有什么见解吗?
I don't understand how the every() method knows which items it is supposed to compare. Any insights?
我有一个数组...
const order = [['sunglasses', 1], ['bags', 2]];
...一个对象...
const inventory = {
sunglasses: 1900,
pants: 1088,
bags: 1344
};
...以及函数体中的以下参数:
let inStock = order.every(item => inventory[item[0]] >= item[1]);
我知道 every() 已在数组 order 上被调用,并将 return 一个布尔值基于呈现的条件(通俗地说,如果库存中有足够的物品来完成订单,则 return 为真,否则 return 为假)。问题是,我无法理解 every() 方法如何知道应该比较哪些项目以及 [0][= 的索引究竟是什么26=]和[1]表示在这种情况下。
在提供给 every
的回调中,第一个参数是被迭代的项目,并且为数组中的每个元素调用回调,直到其中一个回调 return 出现错误,或者直到数组用完。
您可以像这样自己实现它:
Array.prototype.myEvery = function(callback) {
for (const element of this) {
const result = callback(element);
if (!result) return false;
}
return true;
}
所以这里
.every(item => inventory[item[0]] >= item[1]);
item
是被迭代的数组中的一项 - 例如 ['sunglasses', 1]
或 ['bags', 2]
。然后括号符号从子数组中提取值,它变成了类似
inventory['sunglasses'] >= 1
或
inventory['bags'] >= 2
结果为 returned。如果所有回调 return 为真值,则 .every
调用的结果为 true
.
简单说明
库存是一个查找table,item[0] 是传递给 every 的商品名称,item[1] 是订单中的商品数量
订单的每次迭代都会将 [商品名称,商品数量] 传递给函数。 itemname 用于查找库存,并且项目数量与库存数量进行比较。都必须匹配才能满足every
我有一个数组...
const order = [['sunglasses', 1], ['bags', 2]];
...一个对象...
const inventory = {
sunglasses: 1900,
pants: 1088,
bags: 1344
};
...以及函数体中的以下参数:
let inStock = order.every(item => inventory[item[0]] >= item[1]);
我知道 every() 已在数组 order 上被调用,并将 return 一个布尔值基于呈现的条件(通俗地说,如果库存中有足够的物品来完成订单,则 return 为真,否则 return 为假)。问题是,我无法理解 every() 方法如何知道应该比较哪些项目以及 [0][= 的索引究竟是什么26=]和[1]表示在这种情况下。
在提供给 every
的回调中,第一个参数是被迭代的项目,并且为数组中的每个元素调用回调,直到其中一个回调 return 出现错误,或者直到数组用完。
您可以像这样自己实现它:
Array.prototype.myEvery = function(callback) {
for (const element of this) {
const result = callback(element);
if (!result) return false;
}
return true;
}
所以这里
.every(item => inventory[item[0]] >= item[1]);
item
是被迭代的数组中的一项 - 例如 ['sunglasses', 1]
或 ['bags', 2]
。然后括号符号从子数组中提取值,它变成了类似
inventory['sunglasses'] >= 1
或
inventory['bags'] >= 2
结果为 returned。如果所有回调 return 为真值,则 .every
调用的结果为 true
.
简单说明
库存是一个查找table,item[0] 是传递给 every 的商品名称,item[1] 是订单中的商品数量
订单的每次迭代都会将 [商品名称,商品数量] 传递给函数。 itemname 用于查找库存,并且项目数量与库存数量进行比较。都必须匹配才能满足every