【问题标题】:How To Return Values from one array when values from another array are selected by users in Javascript当用户在Javascript中选择另一个数组中的值时如何从一个数组中返回值
【发布时间】:2026-01-28 03:45:01
【问题描述】:

我是一名编程的新学生,我正在尝试找出一个作业。

当用户一对一选择另一个数组中的值时,我必须编写一个函数来返回一个数组中的值。

我尝试了以下方法,但它给出了一个引用错误(Apple 未定义;但 Apple 是第一个数组中的一个元素)。

var valueFromSelect = Apple;

  for (var i = 0; i < fruits.length; i++){
    if(valueFromSelect == fruits[i]){
      console.log(prices[i]);
      break

简而言之,我想为每个选择的水果返回一个价格。以下是数组:

var fruits = ["Apple", "Orange", "Banana", "Pear", "Pineapple", "Strawberry", "Blueberry"];
var prices = [1.50, 1.20, 1.05, 1.10, 3.00, 0.40, 0.10]

谢谢。

【问题讨论】:

  • 也许您希望 Apple 成为 字符串值var valueFromSelect = 'Apple';。您的代码尝试将 variable Applevalue 分配给变量 valueFromSelect 并且错误告诉您这样的变量 (Apple) 没有存在。
  • 苹果应该是变量还是字符串?
  • @FelixKling,感谢您的回复。那我只需要用引号括起来吗?我的困惑来自 Apple 是第一个数组中的字符串值之一。
  • @MikeMapanare,应该是春天

标签: javascript arrays


【解决方案1】:

如果您的数组包含字符串,Apple 值必须是 string

var valueFromSelect = "Apple";
var fruits = ["Banana", "Orange", "Apple"];

PS:您可以使用filter 方法(来自数组原型)来简化代码,如下所示:

var valueFromSelect = "Apple";
var fruits = ["Banana", "Orange", "Apple"];
var result = fruits.filter(fruit => valueFromSelect == fruit);

这将为您返回一个Array,其中包含与您的数组中的项目匹配的每个值。因此,如果 result.length &gt; 0 您可以将您的参数视为“匹配”。

【讨论】:

  • 我刚才试过这段代码,但我有“未定义”的地方,我希望有一个价格。我觉得我错过了什么。如何在此处引入“价格”数组?
  • 您需要使用reduce 或foreach 方法获取数组的索引,您有一个good example here
【解决方案2】:

您遇到的错误是因为为了让 JS 理解 Apple 是一个字符串,您必须用 "(双引号)或 '(引号)将其括起来。

现在的方式是告诉 JS 将存储在您尚未定义的名为 Apple 的值保存到 valueFromSelect

例子:

  • 'Apple'
  • "Apple"

这样它应该可以工作:

var valueFromSelect = 'Apple';

  for (var i = 0; i < fruits.length; i++){
    if(valueFromSelect == fruits[i]){
      console.log(prices[i]);
      break

由于您想要一个打印给定水果价格的函数,因此您需要创建一个接收所选水果作为参数的函数:

function printFruitPrice(valueFromSelect) {
    for (var i = 0; i < fruits.length; i++){
        if(valueFromSelect == fruits[i]){
          console.log(prices[i]);
          break
        }
    }
}

然后像这样使用它:

printFruitPrice('Apple');

【讨论】:

  • 非常感谢。我试过了,但它只为那个字符串提供了一个值。第一个数组中还有其他水果。当我换水果时,它总是为它们返回相同的价格。
  • @DaringDeer 请查看我的更新答案。
  • 刚刚做了。现在想试试。一会儿会恢复。
最近更新 更多