簡體   English   中英

我有兩個字符串數組。 我想通過lowerCasing數組中的每個值來比較兩個數組,如果匹配則返回true/false

[英]I have two array of string. I want to compare both the array by lowerCasing each values in the array an return true/false if it matches

我舉了兩個數組的例子。這樣做的最佳方法是什么?我們可以使用 some() 函數嗎?

let firstArray = ['WickedWeed'];
let secondArray = ["wickedweed'];


//Output

true;

如果只有一個元素,則:

firstArray[0].toLowerCase() == secondArray[0].toLowerCase()

如果有多個元素,則

firstArray.every((e,i)=>(secondArray[i].toLowerCase()==e.toLowerCase()))

如果不需要匹配索引,則:

firstArray.map(e=>e.toLowerCase()).every(e=>secondArray.map(e=>e.toLowerCase()).includes(e))

 var firstArray=["abc","deF","zzz"]; var secondArray=["ABC","DEF","zZz"]; console.log(firstArray.map(e=>e.toLowerCase()).every(e=>secondArray.map(e=>e.toLowerCase()).includes(e)));

對於長數組,這在計算上可能非常低效,在這種情況下,最好分兩步完成:

 var firstArray=["abc","deF","zzz"]; var secondArray=["ABC","DEF","zZz"]; var secondArrayl = secondArray.map(e=>e.toLowerCase()); console.log(firstArray.map(e=>e.toLowerCase()).every(e=>secondArrayl.includes(e)));

如果您不需要匹配每個元素:

 var firstArray=["abc","deF","zzz"]; var secondArray=["ABC"]; var secondArrayl = secondArray.map(e=>e.toLowerCase()); console.log(firstArray.map(e=>e.toLowerCase()).some(e=>secondArrayl.includes(e)));

你可以使用 loadash docs for isequal

_.isEqual(array1, array2)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM