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:[…],}
,你可以使用一个循环…好的,这也是一个很好的解决方案,你能写答案吗