gpt4 book ai didi

javascript - 获取数组中某个类型的第 n 项的索引

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:30:08 24 4
gpt4 key购买 nike

我有一个数组,看起来像这样:

let items = [
1, '-', 231, '-', 6, 67, '-', 13, 177, 451, '-', 43, '-', 345, 56, 45
]

我想获取第 n 个 - 并返回它之后的所有内容。所以我尝试了这个,起初我认为它可以工作,但是当我查看它时,我发现它正在获取索引,然后从数组中的该索引而不是破折号的索引中提取。

例如,如果 n 等于 4,则它当前获得的是第 4 个索引,而不是索引 10 处的第四个破折号。

let items = [
1, '-', 231, '-', 6, 67, '-', 13, 177, 451, '-', 43, '-', 345, 56, 45
]

// Get the number of dashes
let stops = items.filter(i => i == '-').length
// Select a random dash
let n = Math.floor(Math.random() * stops)
// find the dash at the random position, then get a list of items that are not a dash
let sel = items.slice(n + 1).filter(r => r != '-')
// Select the first 3 items for the final output
let final = sel.slice(0, 3)

console.log(n)
console.log(final)

最佳答案

你可以拿Array#findIndex如果计数器达到零,则使用递减所需的数字并返回 true

const
items = [1, '-', 231, '-', 6, 67, '-', 13, 177, 451, '-', 43, '-', 345, 56, 45],
getNth = n => items.slice(items.findIndex(v => v === '-' && !--n) + 1);

console.log(getNth(1));
console.log(getNth(2));
console.log(getNth(3));
console.log(getNth(4));
console.log(getNth(5));
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 获取数组中某个类型的第 n 项的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47557783/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com