Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中不区分大小写的数组比较_Javascript_Arrays_Array Filter - Fatal编程技术网

javascript中不区分大小写的数组比较

javascript中不区分大小写的数组比较,javascript,arrays,array-filter,Javascript,Arrays,Array Filter,我正在比较两个匹配项的数组,但我需要使它们不区分大小写 这是代码:将此代码归功于@PatrickRoberts 我可以通过words.includeDescription.toLowerCase将第二部分转换为小写,但我不知道如何处理第一部分:文本。一些{description}我应该提到的是,我曾尝试将{description}添加到{description}中,如下所示:{description.toLowerCase}但这不起作用 非常感谢您的帮助切换到函数some或函数find或函数fi

我正在比较两个匹配项的数组,但我需要使它们不区分大小写

这是代码:将此代码归功于@PatrickRoberts

我可以通过words.includeDescription.toLowerCase将第二部分转换为小写,但我不知道如何处理第一部分:文本。一些{description}我应该提到的是,我曾尝试将{description}添加到{description}中,如下所示:{description.toLowerCase}但这不起作用


非常感谢您的帮助

切换到函数some或函数find或函数findIndex

const words=['Word1','word2','word3'] const text=[{name:'blah',description:'word4'},{name:'blah2',description:'word1'},{name:'blah3',description:'word5'}];
console.logtext.some{description}=>words.somew=>w.toLowerCase===description.toLowerCase 切换到函数some或函数find或函数findIndex

const words=['Word1','word2','word3'] const text=[{name:'blah',description:'word4'},{name:'blah2',description:'word1'},{name:'blah3',description:'word5'}]; console.logtext.some{description}=>words.somew=>w.toLowerCase===description.toLowerCase; 用于将对象转换为字符串 应用于获得的字符串,以便所有内容(包括所有值)都变为小写 使用将转换回对象或数组 将其余匹配逻辑应用于Array.some和Array.includes const words=['WORD1','WORD2','WORD3']; 常量文本=[ {name:'blah',description:'word4'}, {name:'blah2',description:'word1'}, {name:'blah3',description:'word5'} ]; const lower=x=>JSON.parseJSON.stringifyx.toLowerCase; const[lowerWords,lowerTexts]=[单词,文本].maplower; console.log 一些 {description}=>lowerWords.includeDescription 用于将对象转换为字符串 应用于获得的字符串,以便所有内容(包括所有值)都变为小写 使用将转换回对象或数组 将其余匹配逻辑应用于Array.some和Array.includes const words=['WORD1','WORD2','WORD3']; 常量文本=[ {name:'blah',description:'word4'}, {name:'blah2',description:'word1'}, {name:'blah3',description:'word5'} ]; const lower=x=>JSON.parseJSON.stringifyx.toLowerCase; const[lowerWords,lowerTexts]=[单词,文本].maplower; console.log 一些 {description}=>lowerWords.includeDescription
不,在解构过程中不可能更改它-解释了原因

使用一些而不是includes来检查要容易得多:

const words=['word1','word2','word3'] 常量文本=[{ 名字:'废话', 描述:'word4' }, { 名称:“blah2”, 描述:'word1' }, { 名称:“blah3”, 描述:'word5' } ] console.log 一些 { 描述 }=>words.someword=>word.toLowerCase==description.toLowerCase
不,在解构过程中不可能更改它-解释了原因

使用一些而不是includes来检查要容易得多:

const words=['word1','word2','word3'] 常量文本=[{ 名字:'废话', 描述:'word4' }, { 名称:“blah2”, 描述:'word1' }, { 名称:“blah3”, 描述:'word5' } ] console.log 一些 { 描述 }=>words.someword=>word.toLowerCase==description.toLowerCase
只要stackoverflow允许meCalling description.toLowerCase在内部箭头函数中不必要地重复了大量可以在外部箭头函数中完成的工作,我就会接受您的答案。只要stackoverflow允许meCalling description.toLowerCase在内部箭头函数中被删除,我就会接受您的答案不必要地重复大量可以在外部箭头函数中完成的工作。是的,你是对的@Ele。谢谢你捕捉到这一点,我将放一个editThis假设描述词也总是小写的。这不一定是真的。@PatrickRoberts对,描述可能不是小写的。我来编辑一下。谢谢你抓住了是的,你说得对@Ele。谢谢你捕捉到这一点,我将放一个editThis假设描述词也总是小写的。这不一定是真的。@PatrickRoberts对,描述可能不是小写的。我来编辑一下。谢谢你的关注,这与有什么不同?抱歉@PatrickRoberts我不知道Ele在手机上发过帖子。这与有什么不同?抱歉@PatrickRoberts我不知道Ele在手机上发过帖子。
const words = ['word1', 'word2', 'word3']
const texts = [
    {name: 'blah', description: 'word4'},
    {name: 'blah2', description: 'word1'},
    {name: 'blah3', description: 'word5'}
]

console.log(
  texts.some(
    ({ description }) => words.includes(description)
  )
)