如何在JavaScript中获取传入函数的数组变量名而非数组值?
解决方案
首先明确:JavaScript中,当你把数组变量作为参数传给函数时,函数拿到的是数组的引用(值),而非变量本身的名字。所以直接拼接arr会把数组转成元素用逗号连接的字符串,这就是你之前看到打印球员名字的原因。
下面给你两种适合新手的简单实现方式:
方法1:给函数添加运动名称参数
直接在调用函数时额外传入运动名称字符串,这是最直观的方案:
function favPlayers(arr, sportName) { for(let i = 0; i < arr.length; i++) { console.log(arr[i]); } console.log(`These are my fav ${sportName} players`); } var cricket = ["dhoni", "Virat", "sachin", "ponting", "steyn", "abd"]; var football = ["CR7", "messi", "bale", "mbappe", "haaland", "bruno"]; // 调用时传入数组和对应的运动名称 favPlayers(cricket, "cricket"); favPlayers(football, "football");
这里用了模板字符串(`...`),比传统字符串拼接更简洁易读,新手可以记一下这种写法。
方法2:用对象存储运动数组,通过键名获取名称
如果不想每次调用都重复写名称字符串,可以把所有运动数组放到一个对象里,键名就是运动名称,函数通过键名来操作:
// 把数组存入对象,键名对应运动名称 const sports = { cricket: ["dhoni", "Virat", "sachin", "ponting", "steyn", "abd"], football: ["CR7", "messi", "bale", "mbappe", "haaland", "bruno"] }; function favPlayers(sportKey) { const arr = sports[sportKey]; for(let i = 0; i < arr.length; i++) { console.log(arr[i]); } console.log(`These are my fav ${sportKey} players`); } // 调用时直接传入键名 favPlayers("cricket"); favPlayers("football");
第一种方法简单直接,适合当前场景;第二种更适合后续需要扩展更多运动的情况。
内容的提问来源于stack exchange,提问作者Thanzeer07
相关产品推荐
相关产品推荐

