提问人:Gary 提问时间:5/3/2023 更新时间:5/3/2023 访问量:47
从匹配数组中的某个位置返回值
Return values from certain position in matching array
问:
我希望创建一个函数,该函数根据 URL 中出现的特定关键字从一组数组中返回一个值。
例如:
var URL = "https://blah.com/BCKM";
var indexCode = URL.split('/').pop();
var choices = [['BCKM', 'Beckham', '7'],['SCHO', 'Scholes', '18'],['YRKE', 'Yorke', '19'],['COLE', 'Cole', '9']]
**find "indexCode" in "choices" arrays, then return**
var name = **second item in array that matches BCKM**
var number = **third item in array that matches BCKM**
$(".name").html(name);
$(".number").html(number);
因此,如果 URL blah.com/BCKM,脚本将查找 var “choices” 并返回第二个和第三个值,并将它们插入 2 个范围:
<span class="name">Beckham</span>
<span class="number">7</span>
我只想知道这是否可行,如果可以,是否可以为我指明正确的方向。
答:
0赞
4b0
5/3/2023
#1
首先,找到具有所需代码的子数组索引(例如)。基于该发现和 from 子数组。BCKM
Name
Number
例:
var URL = "https://blah.com/BCKM";
var indexCode = URL.split('/').pop();
var choices = [
['BCKM', 'Beckham', '7'],
['SCHO', 'Scholes', '18'],
['YRKE', 'Yorke', '19'],
['COLE', 'Cole', '9']
];
function find(choices, code) {
return choices.findIndex(row => row.indexOf(code) !== -1);
}
var ind = find(choices, indexCode); // get index
var name = choices[ind][1];
var number = choices[ind][2];
$(".name").html(name);
$(".number").html(number);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<span class="name"></span> <br/>
<span class="number"></span>
评论
1赞
Gary
5/3/2023
非常感谢。这正是我想要的!我确实对jQuery有相当基本的掌握,但这让我有点难倒!
评论
const result = choices.filter(sub => sub[0] === indexCode)
const name = result[1]
const number = result[2]