You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改JavaScript函数判断对象programmingLanguage是否包含Java?

修改函数实现多语言字符串中检测Java的功能

原函数的问题在于用严格相等判断,只能识别完全等于"Java"的字符串,没法处理"C, Java"这种多语言逗号分隔的场景,还得注意别把"JavaScript"误判成包含Java。

方法一:分割字符串后精准匹配

先把programmingLanguage按逗号分割成数组,再去除每个元素的前后空格,最后检查数组里是否包含"Java":

function hasExamplesInJava(book) {
  // 处理属性不存在的情况,避免报错
  if (!book.programmingLanguage) {
    return "No data available";
  }
  // 分割字符串并去除每个语言的前后空格
  const languages = book.programmingLanguage.split(',').map(lang => lang.trim());
  // 检查是否包含Java
  return languages.includes("Java") ? true : "No data available";
}

方法二:正则表达式匹配独立单词

用正则匹配独立的Java单词,避免匹配JavaScript这类包含Java但不是目标的字符串:

function hasExamplesInJava(book) {
  if (!book.programmingLanguage) {
    return "No data available";
  }
  // \b 匹配单词边界,确保Java是独立的单词
  const javaRegex = /\bJava\b/;
  return javaRegex.test(book.programmingLanguage) ? true : "No data available";
}

测试示例

用你提供的三个对象测试:

const book1 = {
  title: "Algorithms",
  author: ["Robert Sedgewick", "Kevin Wayne"],
  programmingLanguage: "Java",
};

const book2 = {
  title: "Structure and Interpretation of Computer Programs",
  author: ["Harold Abelson", "Gerald Jay Sussman", "Julie Sussman (Contributor)"],
  programmingLanguage: "JavaScript",
};

const book3 = {    
  title: "Operating System Concepts",
  author: ["Abraham Silberschatz", "Peter B. Galvin", "Greg Gagne"],
  programmingLanguage: "C, Java",
};

console.log(hasExamplesInJava(book1)); // true
console.log(hasExamplesInJava(book2)); // No data available
console.log(hasExamplesInJava(book3)); // true

这样修改后,既能正确识别"Java"和"C, Java",也不会把"JavaScript"误判。

内容的提问来源于stack exchange,提问作者Zuka Kharati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 01:54:54