我尝试使用filter()函数,但不确定使用该函数返回索引和值。这是我尝试过的示例代码。

var names = ['A', 'B', 'C', 'D', 'E', 'F', 'G']
const name = names.filter((name, index) => name === 'G' ? console.log(${index}: ${name}) : null)


这里的变量name是没有用的,因为在回调时我什么也不返回。
但是,我可以在回调内部访问indexname,但不确定是否要同时返回这两个。

最佳答案

使用findIndex代替

var names = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
var valToFind = "G";
const valIndex = names.findIndex( s => s === valToFind );


您已经知道该值为valToFind,因此无需返回它。

或正如@PaulPro指出的那样,如果值只是字符串,则只需使用

const valIndex = names.indexOf( valToFind );


或者可以将其包装在一个对象中

var output = { name : valToFind, index : names.indexOf( valToFind ) };

09-12 00:05