将页面标题的第一个单词与Javascript中的数组进行比较

问题描述 投票:0回答:2

以下代码获取页面标题,将其与数组中的数据进行比较,并向我输出最终值

var title = (document.title);

//test variables 
testarray =["blue","top","110","in stock", "red","down","111","in stock"]

//function
function testfunction(array, variable){
    var varindex = array.indexOf(variable)
    return array[varindex+2] 
}
//calling the function
testfunction(testarray, title)

var finalvalue = testfunction(testarray, title);

因此,如果我的页面标题是蓝色,它将为我提供所需的值110。它可以正常工作,但是以这种方式,我页面的唯一有效标题必须是Blue,否则它将无法工作。

我希望能够拥有更长的页面标题,例如Blue Shoes。我尝试通过在开头添加以下变量来仅获取标题的第一个单词

var fulltitle = (document.title);
var title = fulltitle.split(' ').slice(0,1);

但是它不起作用。我的代码有什么问题?谢谢

javascript arrays variables split title
2个回答
1
投票

我不确定我是否理解正确,但是可能存在一个问题。数组中的标题和值可以从大写或小写开始。尝试做这样的事情。

var title = (document.title);

//test variables 
testarray =["blue","top","110","in stock", "red","down","111","in stock"]

//function
function testfunction(array, variable){
    // CHANGES HERE
    var varindex = array.indexOf(variable.toLocaleLowerCase())
    return array[varindex+2] 
}
//calling the function
testfunction(testarray, title)

var finalvalue = testfunction(testarray, title);

0
投票

尝试var title = fulltitle.split(' ')[0]。并将比较的部分放入相同的寄存器toLowerCase()


0
投票

这里的几个问题:

  1. [document.titleBlue Shoes,然后执行:

    fulltitle.split(' ').slice(0,1)
    

    它实际上返回一个像["Blue"]的数组。您需要先将其转换为文本,例如:

    var title = fulltitle.split(' ').slice(0,1)[0];
    
  2. 另外,返回的值与testarray中的值不同,因此indexOf不起作用。您需要将标题设置为小写,例如:

    var varindex = array.indexOf(variable.toLowerCase())
    
© www.soinside.com 2019 - 2024. All rights reserved.