配列同士で後方一致しない要素を出力したい
a,b 2つの配列のそれぞれの要素が後方一致するかを比較し、
- a,b両方で存在したもの(後方一致)
- aの配列内でbに無い要素(後方一致しないもの)
- bの配列内でaに無い要素(後方一致しないもの)
をそれぞれ出力したいです。
出力例としてはこんな感じにしたい
const a = ["http://abc/","http://abc/def/","http://ghi/"];
const b = ["/abc/","/def/","/jkl/"];
/*
出力例:
http://abc/ と /abc/ はOK
http://abc/def/ と /def/はOK
配列a内の差分:http://ghi/
配列b内の差分:/jkl/
*/
自分で書いてみたところ、a[0]とb全部→a[1]とb全部→...という風に、
後方一致するものの出力はできました。
for(let i=0;i<a.length;i++){
for(let j=0;j<b.length;j++){
if(a[i].endsWith(b[j])){
console.log(a[i] +"と"+ b[j] +"はOK");
}
}
}
/*
出力:
http://abc/ と /abc/ はOK
http://abc/def/ と /def/はOK
*/
aの配列内でbと後方一致しないもの(http://ghi/)
bの配列内でaと後方一致しないもの(/jkl/)
をどう出力すれば良いかわかりません。
何かいい方法があれば教えていただきたいです。
(上記のfor文ももっとスマートに書ければ書き直したい...)
ご回答の程、よろしくお願いします。