Javascript 检查JS中的数组
我试图检查JS中的一个值,该值在页面加载时作为单个元素数组返回,在ajax函数作为字符串返回后返回。我不知道它为什么要这样做,但我正在努力扮演它的角色 因此,使用Javascript 检查JS中的数组,javascript,arrays,Javascript,Arrays,我试图检查JS中的一个值,该值在页面加载时作为单个元素数组返回,在ajax函数作为字符串返回后返回。我不知道它为什么要这样做,但我正在努力扮演它的角色 因此,使用console.log(value)我在页面加载时得到array['Scranton'],ajax甚至返回字符串“Scranton” 当尝试检查此变量时,这不符合我的预期: if ( value === 'Scranton' || value === ['Scranton']){ ... } 感谢您的帮助 这可能会奏效,但我会
console.log(value)
我在页面加载时得到array['Scranton']
,ajax甚至返回字符串“Scranton”
当尝试检查此变量时,这不符合我的预期:
if ( value === 'Scranton' || value === ['Scranton']){
...
}
感谢您的帮助 这可能会奏效,但我会尝试解决根本问题,而不是解决它
if ( value === 'Scranton' || value[0] === 'Scranton'){
...
}
这可能会奏效,但我会尝试解决根本问题,而不是解决它
if ( value === 'Scranton' || value[0] === 'Scranton'){
...
}
您可以对数组和字符串使用
indexOf
,因此value.indexOf(“Scranton”)!=-1
将起作用(刚刚在控制台上测试过)
但是,您必须首先检查null/false/undefined,否则会出错
if (value && value.indexOf("Scranton") !== -1) {}
编辑:正如Felix所说,对于任何包含“Scranton”的字符串,这也是正确的。如果这是一个问题,那么您可以改为检查
indexOf==0
,这对于任何以“Scranton”开头的字符串都是正确的。这真的取决于你的具体问题,如果这个解决方案适合你。小心使用。您可以对数组和字符串使用indexOf
,因此value.indexOf(“Scranton”)!=-1
将起作用(刚刚在控制台上测试过)
但是,您必须首先检查null/false/undefined,否则会出错
if (value && value.indexOf("Scranton") !== -1) {}
编辑:正如Felix所说,对于任何包含“Scranton”的字符串,这也是正确的。如果这是一个问题,那么您可以改为检查indexOf==0
,这对于任何以“Scranton”开头的字符串都是正确的。这真的取决于你的具体问题,如果这个解决方案适合你。小心使用。在ajax函数之后“是什么意思?页面加载一个已分配数组值的默认变量,然后发出一个Ajax请求,更改此默认变量,并分配一个字符串,而不是分配一个数组?假设这个“ajax函数”将默认变量更改为来自服务器的响应文本,那么问题就来了:ajax——与任何其他请求一样——是基于文本的,所以它是一个字符串。如果您使用构建在服务器上的JSON字符串响应Ajax请求,则需要在浏览器中对其进行解析,以便将其重新解释为数组。参见方法。什么是“在ajax函数之后”的意思?页面加载一个已分配数组值的默认变量,然后发出一个Ajax请求,更改此默认变量,并分配一个字符串,而不是分配一个数组?假设这个“ajax函数”将默认变量更改为来自服务器的响应文本,那么问题就来了:ajax——与任何其他请求一样——是基于文本的,所以它是一个字符串。如果您使用构建在服务器上的JSON字符串响应Ajax请求,则需要在浏览器中对其进行解析,以便将其重新解释为数组。参见方法
编辑1:
首先,您需要检查“value”是否为数组。如果它是一个数组并包含字符串“Scranton”,则可以使用value.indexOf()
找到它。
如果“value”不是数组,您可以直接将其与字符串“Scranton”进行比较
编辑1:
首先,您需要检查“value”是否为数组。如果它是一个数组并包含字符串“Scranton”,则可以使用value.indexOf()
找到它。
如果“value”不是数组,您可以直接将其与字符串“Scranton”进行比较。具有相同内容的两个不同数组永远不相等:
[]==[]
为false
。有关一般解决方案,请参见。typeof value=='String'具有相同内容的两个不同数组永远不相等:[]==[]
为false
。请参阅以获取一般解决方案。typeof value=='String'对于“fooscantonbar”
也是如此。您是对的,也许他应该改为检查0。我将更新我的答案。“fooscantonbar”
也是如此。你是对的,也许他应该改为检查0。我会更新我的答案。请在你的答案中添加一些解释。现在,它被标记为“低质量”。请在你的答案中添加一些解释。现在,它被标记为“低质量”。为了记录在案,这也起到了作用。我对答案的选择只是偏好的问题。谢谢@彼得·索伦森np,我对另一个答案投了更高的票,我认为它是好的。记录在案,这也起了作用。我对答案的选择只是偏好的问题。谢谢@彼得·索伦森,我对另一个答案投了更高的票,我认为它是好的。