【问题标题】:how to get the value from array which includes some value with lodash angular 4如何从包含 lodash angular 4 的一些值的数组中获取值
【发布时间】:2019-09-30 00:58:20
【问题描述】:

嘿,我有这个数组

[
 0: "Migration, MD"
 1: "Lution, MD"
 2: "Mover, MD"
 3: "Dee"
 4: "Prov10A"
]

如何获取包含 MD 的值 像哪个有 MD 它应该给我这样的东西

[
 0: "Migration, MD"
 1: "Lution, MD"
 2: "Mover, MD"
]

我怎样才能用 lodash 做到这一点? 谢谢

【问题讨论】:

  • By word MD 你的意思是你只想匹配包含由单词边界(空格、标点符号等)分隔的字符串MD 的项目吗?
  • 只包含字符串MD

标签: javascript arrays angular typescript lodash


【解决方案1】:

使用filterincludes

const arr = ["Migration, MD", "Lution, MD", "Mover, MD", "Dee", "Prov10A"];
const res = arr.filter(e => e.includes("MD"));
console.log(res);
.as-console-wrapper { max-height: 100% !important; top: auto; }

【讨论】:

  • 这很好,尽管如果有一个包含“MD”的值不是单独的标题,而是作为名称的一部分,它也会将其视为 MD。
【解决方案2】:

您可以使用filtertoLowerCaseincludesfilter 将返回一个新数组,toLowerCase 将转换元素的大小写,因此mdMD 都会被考虑。

let k = ["Migration", "MD", "Lution, MD", "Mover, MD", "Dee", "Prov10A"].filter(function(item) {

  return item.toLowerCase().includes('md')
});
console.log(k)

【讨论】:

    【解决方案3】:

    你可以试试过滤功能

        const  arr = [
         "Migration, MD", "Lution, MD" , "Mover, MD", "Dee", "Prov10A"
        ]
    
        const out  = arr.filter(e => e.includes('MD'))
        console.log(out)
    

    【讨论】:

    • 与第一条评论相同,它解决了我的问题,但还是谢谢 :)
    【解决方案4】:

    如果你想只找到一个带有“MD”的单词或只找到第一个单词,你可以使用java script find方法,如果你想要一个带有“MD”的单词数组,那么你可以使用filter方法。

     const  arr = [
         "Migration, MD", "Lution, MD" , "Mover, MD", "Dee", "Prov10A"
        ]
        const result = arr.find(word=>word.includes("MD"));
        console.log(result);
    // to get array of words with MD simply change .find as .filter in above code.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-19
      • 1970-01-01
      • 2022-01-22
      • 2021-02-07
      • 2020-02-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多