js中怎么判断一个字符串是一个字符串数组中的元素
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中怎么判断一个字符串是一个字符串数组中的元素相关的知识,希望对你有一定的参考价值。
下面是我自己定义的一个数组
var links = new Array();
links[0] = "notice";
links[1] = "purchase";
links[2] = "report";
var arr = new Array();
arr = linkValue.split(","); //linkValue是extjs中ComboBox中取得的值
for( i= 0; i<arr.length; i++)
if( 。。。。。)
alert("存在"+arr[i]); //进行相关操作
else
alert("不存在"+arr[i]); //进行相关操作
我的问题就是这个if条件里面怎么写才可以呢?还有就是比如arr进行分割之后有两个值分别是notice和purchase那么我怎么能得到剩下的那一个值呢?还请js高手们帮个忙啊。。。重点是我要怎么得到可以匹配这个字符串之外 剩下的那个字符串。。。。
for (var i = 0; i < arr.length; i++)
if (arr[i] == item)
return true;
return false;
;
var links = new Array();
links[0] = "notice";
links[1] = "purchase";
links[2] = "report";
var arr = new Array();
linkValue = "notice,def,ghi,jkl";
arr = linkValue.split(","); //linkValue是extjs中ComboBox中取得的值
for( i= 0; i< arr.length; i++)
if(inArray(links, arr[i]))
alert("存在" + arr[i]); //进行相关操作
else
alert("不存在"+ arr[i]); //进行相关操作
另外你另一个需求可以写一个方法实现:
var getItems = function(arr1, arr2)var indexes = [];
for (var i = 0; i < arr2.length; i++)
if(inArray(links, arr[i]))
indexes[i] = true;
else
indexes[i] = false;
var result = [];
for (var i = 0; i < indexes.length; i++)
if (!indexes[i])
result.push(arr1[i]);
return result;
你把两个数组传进去,返回的就是没有匹配到的元素数组
你下面定义的这个函数,参数arr1和arr2分别指什么啊?
追答var result = getItems(links, linkValue);这样使用
你这个getItems()好象有问题啊,就是假如linkValue = "purchase,report",正确情况下,result应该是public,但是却返回report,假如linkValue="public,report",却还是返回report,就算linkValue="report",result里面仍然有report,只要选择了就有,这是怎么回事啊?
追答 var getItems = function(arr1, arr2)var indexes = [];
for (var i = 0; i < arr1.length; i++)
if(inArray(arr2, arr1[i]))
indexes[i] = true;
else
indexes[i] = false;
var result = [];
for (var i = 0; i < indexes.length; i++)
if (!indexes[i])
result.push(arr1[i]);
return result;
这样就可以了,刚才理解反了
另外一个问题没看明白
大概是
arr.filter(function(e,i)return i!=this,i)
以上是关于js中怎么判断一个字符串是一个字符串数组中的元素的主要内容,如果未能解决你的问题,请参考以下文章