我有一个多维数组,其中包含文件名和文件格式,例如
[["awardees.png", "png"], ["history.png", "png"]]
我要验证两个文件格式是否相等?
答案 0 :(得分:1)
您可以使用every()
并将每个数组的第二个元素与第一个数组的第二个元素进行比较。
const arr = [["awardees.png", "png"],["history.png", "png"],["karnat.jpg", "jpg"]] ;
console.log(arr.every(([v1,v2]) => arr[0][1] === v2))
const arr = [["awardees.png", "png"],["history.png", "png"]] ;
console.log(arr.every(function(x){
return arr[0][1] === x[1]
}))
答案 1 :(得分:0)
赞:
const arr = [["awardees.png", "png"], ["history.png", "png"]];
const match = arr[0][1] == arr[1][1];
console.log(match);
如果数组具有多个元素(嵌套数组):
const arr = [["awardees.png", "png"], ["history.png", "png"], ["dog.png", "png"]];
const match = arr.every(([, v]) => v == arr[0][1]);
console.log(match);
答案 2 :(得分:0)
您可以使用第一个元素检查所有格式。
var array = [["awardees.png", "png"], ["history.png", "png"]],
same = array.every((b, _, [a]) => a[1] === b[1]);
console.log(same);
答案 3 :(得分:0)
如果我正确理解了您的问题,则可以将扩展名与第一个值分开,并与第二个值匹配
let data = [["awardees.png", "png"],["history.png", "png"]]
data.forEach(value => {
let fileExt = value[0].split('.')[1]
console.log(fileExt === value[1])
})
如果您希望所有内部数组必须具有相同的扩展名,则只需将forEach
更改为every
答案 4 :(得分:0)
使用正则表达式捕获文件扩展名,然后遍历数组中的每个条目以检查其是否等于文件扩展名。
const arr = [
["awardees.png", "png"],
["history.png", "png"],
["demo.png1", "png"],
];
// Regex for capturing file extension in 1st capturing group
const pattern = /\.([A-Za-z0-9]+)$/i;
const res = arr.map(x => {
// Compare the captured group's value with array element
if (x[0].match(pattern)[1] === x[1]) {
return true;
}
return false;
});
console.log(res);