Javascript 检查包含字符串的数组

Javascript 检查包含字符串的数组,javascript,arrays,Javascript,Arrays,我有一些这样的数组和一个简单的字符串: const filename = 'test.jpg'; let fileExtension = filename.split('.').pop(); const images = ['png', 'jpg', 'jpeg']; const pdf = ['pdf']; 我需要检查字符串包含在哪个数组中,并返回该数组的名称。我试过这样的方法: switch (fileExtension) { case images.includes(file

我有一些这样的数组和一个简单的字符串:

 const filename = 'test.jpg';
 let fileExtension = filename.split('.').pop();
 const images = ['png', 'jpg', 'jpeg'];
 const pdf = ['pdf'];
我需要检查字符串包含在哪个数组中,并返回该数组的名称。我试过这样的方法:

switch (fileExtension) {
  case images.includes(fileExtension):
    return 'image'; 
    break;
  default:
    break;
}
我曾尝试使用
数组。当它返回
true
false
时包含
,但我认为这是不可能的


你有什么简单的解决办法吗?谢谢。:-)也可以有两个以上的阵列。

可能是这样的吗

constfilename='test.jpg';
让fileExtension=filename.split('.').pop();
const images=['png','jpg','jpeg'];
常量pdf=['pdf'];
const searchedarays={images,pdf};
for(Object.entries(searchedArray)的常量[键,值]){
if(value.includes)(文件扩展名){
返回键;
}
}

也许是这样的

constfilename='test.jpg';
让fileExtension=filename.split('.').pop();
const images=['png','jpg','jpeg'];
常量pdf=['pdf'];
const searchedarays={images,pdf};
for(Object.entries(searchedArray)的常量[键,值]){
if(value.includes)(文件扩展名){
返回键;
}
}

您可以执行以下操作:

 let bins = { images: [...], docs: [...] }
 let ext = 'pdf'

 function detectBin( ext ) {
      return bins.images.includes(ext) ? 'image' : ( bins.docs.includes( ext) ? 'document' : 'unknown' );
  }

 let bin = detectBin( ext );

你可以这样做:

 let bins = { images: [...], docs: [...] }
 let ext = 'pdf'

 function detectBin( ext ) {
      return bins.images.includes(ext) ? 'image' : ( bins.docs.includes( ext) ? 'document' : 'unknown' );
  }

 let bin = detectBin( ext );

如果目标是将扩展映射到文件类型,那么更好的静态结构会将扩展“映射”到类型

const ext2Type={'png':'image','xls':'MS Excel','jpg':'image'}//等
常量文件名='test.jpg';
让fileExtension=filename.split('.').pop();
const type=ext2Type[fileExtension];

console.log(type)
如果目的是将扩展映射到文件类型,那么更好的静态结构会将扩展“映射”到类型。没有数组,没有循环

const ext2Type={'png':'image','xls':'MS Excel','jpg':'image'}//等
常量文件名='test.jpg';
让fileExtension=filename.split('.').pop();
const type=ext2Type[fileExtension];

console.log(type)
我知道这并不是你想要的,但在我看来,你的方法有点过分。除非你真的需要那些数组是动态的,否则可以重用的静态函数似乎是更好的解决方案

const getExtensionType=(文件名)=>{
const ext=filename.split('.').pop()
如果(['png','jpg','jpeg'].包括(ext)){
返回“图像”
}
如果(ext=='pdf'){
返回“pdf”
}
返回空
}
log(getExtensionType('hello-world.jpg'))
//形象
log(getExtensionType('hello-world.pdf'))
//pdf

我明白这不是你想要的,但在我看来,你的方法有点过火。除非你真的需要那些数组是动态的——一个可以重用的静态函数似乎是更好的解决方案

const getExtensionType=(文件名)=>{
const ext=filename.split('.').pop()
如果(['png','jpg','jpeg'].包括(ext)){
返回“图像”
}
如果(ext=='pdf'){
返回“pdf”
}
返回空
}
log(getExtensionType('hello-world.jpg'))
//形象
log(getExtensionType('hello-world.pdf'))
//pdf

不要使用
开关
,如果..else
,请使用一个好的旧
。好的,但我将有两个以上的数组:(如果您使用像
{image:['png',…],pdf:[…],…]这样的对象)
,你可以使用一个循环…好的,这也是一个很好的解决方案,你能写答案吗不要使用
开关,使用一个好的
如果..否则
。好的,但我会有两个以上的数组:(如果你使用像
{image:['png',…],pdf:[…],}
,你可以使用一个循环…好的,这也是一个很好的解决方案,你能写答案吗