You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript实现:根据数组1中变量值的索引获取数组2对应值

解决两个对应数组的交叉取值问题

嘿,这个问题其实很好处理,核心就是利用两个数组索引一一对应的关系——找到变量x在所属数组中的位置,再返回另一个数组相同索引的值就行。我给你分情况说明,再写个通用的代码示例:

核心思路

  • 如果x存在于array1中:找到它的索引,返回array2对应索引的元素
  • 如果x存在于array2中:找到它的索引,返回array1对应索引的元素
  • 额外处理:如果x在两个数组都找不到,可以返回默认值或者抛出错误(避免返回undefined引发问题)

JavaScript 代码示例

function getCorrespondingValue(array1, array2, x) {
  // 先检查x是否在array1里
  const idxInArr1 = array1.indexOf(x);
  if (idxInArr1 !== -1) {
    return array2[idxInArr1];
  }

  // 再检查x是否在array2里
  const idxInArr2 = array2.indexOf(x);
  if (idxInArr2 !== -1) {
    return array1[idxInArr2];
  }

  // 两个数组都找不到x的情况,这里抛出错误,也可以改成返回null之类的默认值
  throw new Error(`变量x(${x})在两个数组中都未找到`);
}

// 测试你给的示例
const array1 = [10, 15, 20, 27];
const array2 = ['up', 'down', 'left', 'right'];

// 情况1:x在array2中,返回array1对应值
let x = 'down';
console.log(getCorrespondingValue(array1, array2, x)); // 输出:15

// 情况2:x在array1中,返回array2对应值
x = 20;
console.log(getCorrespondingValue(array1, array2, x)); // 输出:left

注意点

如果数组中存在重复值,indexOf只会返回第一个匹配元素的索引。如果你需要处理重复值的场景(比如返回所有对应值),可以把逻辑改成遍历数组收集所有匹配的索引,再返回对应的元素数组。

内容的提问来源于stack exchange,提问作者secno2109832

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:19:55