使用函数和 for 循环时,如果存在重复值或相似值,如何返回对象中的第一个匹配值?

例如,假设我的数据集中有以下重复项,并且我将其name = Finding Your Center作为参数输入到以下函数中。我想返回price第一个匹配的itemName。上面的函数不会返回 15.00,因为 15.00 是与字符串参数匹配的第一个值,而是返回 1500,因为它循环遍历整个对象数据,而不是在第一个匹配/相似值处停止。


 let duplicates = [

      {

        itemName: "Finding Your Center",

        type: "book",

        price: 15.00

      },

      {

        itemName: "Finding Your Center",

        type: "book",

        price: 1500.00

      }];

到目前为止,这是我的伪代码和函数。此函数返回我使用特定数据集所需的所有值。


// Create priceLookUp function to find price of a single item

// Give the function two paramenters: an array of items and an item name as string

// priceLookUp = undefined for nomatching name

// loop through the items array checking if name = itemName

// return the price of item name matching string

// for a matching/similar value the code should stop running at the first value instead of going through the rest of the loop


function priceLookup (items, name){

  let priceOfItem = undefined;

  for (let i = 0; i < items.length; i++) 

  if (name === items[i].itemName) 

  {priceOfItem = items[i].price;}

  return priceOfItem;

}

我将如何获得使用 for 循环编写的函数以在第一个匹配值处停止运行而不循环遍历整个数组?


弑天下
浏览 159回答 4
4回答

暮色呼如

只需删除变量并返回匹配。function priceLookup (items, name) {&nbsp; for (let i = 0; i < items.length; i++) {&nbsp; &nbsp; if (name === items[i].itemName) return items[i].price;&nbsp; }}

叮当猫咪

function priceLookup (items, search) {&nbsp; let priceOfItem = [];&nbsp; for (let i = 0; i < items.length; i++)&nbsp;&nbsp; if (search === items[i].itemName)&nbsp; &nbsp; {priceOfItem.push(items[i].price);}&nbsp; &nbsp; return priceOfItem[0];&nbsp;}&nbsp;&nbsp;对于这个函数,创建一个空数组来保存新的返回值对我来说更有意义。由于我们只想返回第一个匹配项,因此返回数组中的第一个值是有意义的。通过返回 priceOfItem[0],如果有多个值满足 if 条件,它会返回数组中的第一个值。

阿波罗的战车

在你的 if 中使用break语句。您还可以使用find数组中存在的方法。

MYYA

您需要重写您的函数以在第一次匹配时停止,因为您可以使用 'break' 关键字,如下所示:function priceLookup (items, name){&nbsp; let priceOfItem = undefined;&nbsp; for (let i = 0; i < items.length; i++) {&nbsp; &nbsp; &nbsp; if (name === items[i].itemName) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; priceOfItem = items[i].price;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;&nbsp; &nbsp; &nbsp; }&nbsp; }&nbsp; return priceOfItem;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript