js中怎么判断一个字符串是一个字符串数组中的元素
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中怎么判断一个字符串是一个字符串数组中的元素相关的知识,希望对你有一定的参考价值。
下面是部分代码
var inArray = function(arr, item)
for (var i = 0; i < arr.length; i++)
if (arr[i] == item)
return true;
return false;
;
var getItems = function(arr1, arr2)
var indexes = [];
for (var i = 0; i < arr1.length; i++)
if(inArray(arr1, arr2[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;
;
var links = new Array();
links[0] = "notice";
links[1] = "purchase";
links[2] = "report";
arr = linkValue.split(","); //linkValue是extjs中ComboBox中取得的值,并且只能为notice,purchase,report之中的一个、两个(全部存在的情况暂时先不考虑)
var com = getItems(links,arr);
alert("不存在com : "+com);
我的问题就是比如arr进行分割之后有两个值分别是notice和report,那么我怎么能得到剩下的那一个值呢?还请js高手们帮个忙啊。。。重点是我要怎么得到可以匹配这个字符串之外 剩下的那个字符串。。。。不想用正则表达式。。。
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;
;
我记得昨天给你解决了啊。。。你把我昨天发的代码复制就可以了,你是重新打了一遍吧?
var index = -1;
if (arr.indexOf)
index = arr.indexOf(item);
else
for (var i = 0; i < arr.length; i++)
if (arr[i] == item)
index = i;
break;
return index;
function getItems(arr1, arr2)
// 获取arr1的副本
var copy = arr1.slice(0);
for (var i = arr2.length - 1; i >= 0; i--)
var index = inArray(copy, arr2[i]);
if (index != -1)
copy.splice(index, 1);
return copy;
var links = new Array();
links[0] = "notice";
links[1] = "purchase";
links[2] = "report";
arr = linkValue.split(",");
var com = getItems(links, arr);
alert("不存在com : " + com); 参考技术B 你上面的2个方法不是已经找出来那个剩余的了吗。追问
上面的方法不行,就比如arr=notice,report,正确的是返回purchase,但是却返回report,如果arr=report却返回purchase,report,如果arr=purchase,report却还是返回report。。上面的方法根本不行。。。你有什么办法吗?
追答你这问题我懂了。先去吃个饭~如果没人帮你解决 下午在来帮你看
如果arr=report 那你想得到哪个怎么确定呢
zhaoapk的是对的 var copy = links.slice(0); 改成 var copy = arr1.slice(0);吧?
lkiarest的
for (var i = 0; i < arr1.length; i++)
if(inArray(arr2, arr1[i])) // 这个地方写反了
应该写成
for (var i = 0; i < arr2.length; i++)
if(inArray(arr1, arr2[i]))
以上是关于js中怎么判断一个字符串是一个字符串数组中的元素的主要内容,如果未能解决你的问题,请参考以下文章