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

JavaScript:如何将多个数组变量传入单个函数处理?

处理多数组传入取最后元素函数的方案

嘿,先看你的代码——你的valueIn函数逻辑本身是没问题的,它能正确取出单个数组的最后一个元素。你说对pzz无效,其实是因为你只调用了valueIn(arr),完全没给pzz调用这个函数的机会呀😎

下面给你几种处理多数组的方法,按需选择:

1. 最直接:逐个调用函数

如果数组数量不多,直接分别传入每个数组就行,顺便给你优化了变量声明避免全局污染:

var arr = ['abc', 'def', 'ghi']; 
var pzz = ['jkl', 'lmn', 'opq']; 

function valueIn(v) { 
  // 用const声明局部变量,避免全局变量泄露
  const lastIndex = v.length - 1; 
  console.log(v[lastIndex]); 
} 

// 分别处理两个数组
valueIn(arr); // 输出 ghi
valueIn(pzz); // 输出 opq

2. 进阶:让函数支持一次性传入多个数组

用ES6的剩余参数语法,让函数可以接收任意数量的数组参数,批量处理:

var arr = ['abc', 'def', 'ghi']; 
var pzz = ['jkl', 'lmn', 'opq']; 
// 用...arrays接收所有传入的数组参数
function valueIn(...arrays) { 
  arrays.forEach(item => {
    // 加个类型判断,避免非数组参数报错
    if (Array.isArray(item)) {
      // 更简洁的取最后一个元素方式:arr.at(-1)(ES2022+支持)
      console.log(item.at(-1));
    } else {
      console.warn(`⚠️ ${item} 不是有效数组`);
    }
  });
} 

// 一次传入多个数组,甚至可以传更多
valueIn(arr, pzz); // 依次输出 ghi、opq

3. 另一种思路:传入数组的集合

如果你习惯把多个数组打包成一个大数组,也可以这样处理:

var arr = ['abc', 'def', 'ghi']; 
var pzz = ['jkl', 'lmn', 'opq']; 

function valueIn(arrayCollection) { 
  arrayCollection.forEach(arr => {
    if (Array.isArray(arr)) {
      console.log(arr[arr.length - 1]);
    }
  });
} 

// 传入包含所有目标数组的大数组
valueIn([arr, pzz]); // 依次输出 ghi、opq

小提示:arr.at(-1)是ES2022新增的语法,直接用负数索引取数组末尾元素,比arr[arr.length-1]更简洁易懂,如果你的运行环境支持(比如现代浏览器、Node.js 16+),非常推荐使用~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:12:14