tee*_*tee -1 javascript arrays string ecmascript-6
有什么方法或快速方法可以查看字符串中数组中的哪些元素?
const myArray = ['foo', 'bar', 'baz'];
const myString = 'somelongbarstring';
Run Code Online (Sandbox Code Playgroud)
在这个例子中,bar从阵列中存在myString,所以我需要bar给予myArray和myString。
Jac*_*ord 11
使用find有includes:
const myArray = ['foo', 'bar', 'baz'];
const myString = 'somelongbarstring';
const res = myArray.find(e => myString.includes(e));
console.log(res);Run Code Online (Sandbox Code Playgroud)
如果你想找到包含在字符串中的所有项目,换出find了filter:
const myArray = ['foo', 'bar', 'baz'];
const myString = 'somelongbarstring-baz';
const res = myArray.filter(e => myString.includes(e));
console.log(res);Run Code Online (Sandbox Code Playgroud)
如果需要索引,请使用findIndex:
const myArray = ['foo', 'bar', 'baz'];
const myString = 'somelongbarstring';
const res = myArray.findIndex(e => myString.includes(e));
console.log(res);Run Code Online (Sandbox Code Playgroud)
多个索引有点棘手-您必须使用该Array.prototype.keys方法来保留原始索引,因为会filter返回具有新索引的新数组:
const myArray = ['foo', 'bar', 'baz'];
const myString = 'somelongbarstring-baz';
const res = [...myArray.keys()].filter((e, i, a) => myString.includes(myArray[e]));
console.log(res);Run Code Online (Sandbox Code Playgroud)
(你也可以换出e了i上述功能,但它更容易理解通过按键来做到这一点,因为我们是迭代。)