我尝试使用filter()
函数,但不确定使用该函数返回索引和值。这是我尝试过的示例代码。
var names = ['A', 'B', 'C', 'D', 'E', 'F', 'G']
const name = names.filter((name, index) => name === 'G' ? console.log(${index}: ${name}) : null)
这里的变量
name
是没有用的,因为在回调时我什么也不返回。但是,我可以在回调内部访问
index
和name
,但不确定是否要同时返回这两个。 最佳答案
使用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 ) };