javascript - 给定数组,创建一个函数并返回一个数字
问题描述
我需要编写一个函数 priceLookup(items, itemName) 然后返回被调用项目的价格。如果没有与传入的名称匹配的项目,则该函数应返回 undefined,如果数组中与名称匹配的项目不止一个,则该函数应返回第一个匹配的项目的价格。
示例输出:
priceLookup(items, "Effective Programming Habits") //=> 13.99
给定数组:
let items = [
{
itemName: "Effective Programming Habits",
type: "book",
price: 13.99
},
{
itemName: "Creation 3005",
type: "computer",
price: 299.99
},
{
itemName: "Finding Your Center",
type: "book",
price: 15.00
}
]
到目前为止我所拥有的:
function priceLookup(items, itemName) {
if (items.length === 0) return undefined;
for (let i = 0; i < items.length; i++) {
let result = items.filter(price => items.price);
return result;
}
}
我想我可以使用 filter() 方法在调用每个名称时返回价格,但是,这会返回一个空数组。(我确定我做错了)
解决方案
既然你想找到第一个匹配,如果它存在,你应该使用.find
,而不是-除了数组方法之外.filter
,你不需要循环。for
您还应该返回找到的对象的价格,而不是整个对象。
function priceLookup(items, itemName) {
const found = items.find(item => item.itemName === itemName);
if (found) return found.price;
}
let items = [
{
itemName: "Effective Programming Habits",
type: "book",
price: 13.99
},
{
itemName: "Creation 3005",
type: "computer",
price: 299.99
},
{
itemName: "Finding Your Center",
type: "book",
price: 15.00
}
]
function priceLookup(items, itemName) {
const found = items.find(item => item.itemName === itemName);
if (found) return found.price;
}
console.log(priceLookup(items, "Effective Programming Habits"));
推荐阅读
- entity-framework - context.ObjectStateManager,实体框架中缺少程序集引用
- python - 将 CSV 中的列转换为列表并汇总每个回报的总和
- firebase - Firebase 控制台
- reactjs - 状态不立即更新
- java - 不终止的 JMS 客户端
- javascript - 为什么类型“数字”不能分配给类型“T”?
- python - python zeep 和 MessagePack 附件
- pug - 如何修复我的 pug 包含的降价文件中损坏的图像链接?
- javascript - jQuery - $.post 延迟对象数组的协调事件处理程序
- sql-server - 一次查询更新多个表