JS 字符串转换成数组,再判断某个字符串是不是存在数组中,如果存在删除,不存在添加
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS 字符串转换成数组,再判断某个字符串是不是存在数组中,如果存在删除,不存在添加相关的知识,希望对你有一定的参考价值。
假如有个字符串是:var aa = 12,123,1234 将字符串转换成数组。。。
var bb = 12 ; 判断bb是否在数组中存在,如果存在添加到数组中,如果不在,从数组中删除。。。
求JS代码。。。跪谢。。。
var bb = '12';
var arr = eval('[' + aa + ']');
if($.inArray(bb,arr)>-1)
//存在,从数组中删除
arr = $.grep(arr,function(n,i)return n == bb;,true);
else
//不存在,添加
arr.push(bb);
PS:"如果存在添加到数组中,如果不在,从数组中删除。。。",这一句让我很凌乱!
额,弱弱的问句。。。
再把数组转换成字符串这么写呢。。。
格式是 123,1234
这用数组?
if(aa.indexOf('12')!=-1)
aa=aa.replace('12','');
else
aa+='12';
追问
如果aa=123,12,1234;
那aa=aa.replace('12',''); 他就会认为是123里的12
最后aa就等于3,12,1234
if(aa.indexOf('12')!=-1)
aa=aa.replace('/12/g','');
else
aa+='12';
aa=aa.replace('/12/g','');
这样的话就等于把aa=123,12,1234; 里所有的12都去掉了。。。
结果是3,,34!!!....
我期望的是aa=123,1234;
....早说啊。。。。。
var aa='12,123,1234'
var re=aa.split(',');
for(var i in re)
if(re[i]=='12')
re.splice(i,1)
aa=re.join(',')
alert(aa);
如何判断一个字符串是否在数组中
这里有四种方法供参考:
一、使用for循环,遍历数组,然后一 一比较,包含则返回true;
二、使用Arrays.asList(数组).contains(目标值),即把数组自动转换为List,再使用其方法判断,只是这里需要特别注意,数据类型必须一致(int和Integer只能有一种!);
三、使用Set,new HashSet<T>(Arrays.asList(数组)).contains(目标值);
四、binarySearch(),注意此方法使用时有限制:
参考技术A 第一种方法:遍历数组String[] arr1 = "1","2","3","4","6","7";
for (int i = 0; i < arr1.length; i++)
if("5".equals(arr1[i]))
System.out.println("包含");
else
System.out.println("不包含");
第二种方法:先把数组转换成list;再判断contains
String[] arr = "1","2","3","4","6","7";
List<String> list=Arrays.asList(arr);
System.out.println(list.contains("5"));本回答被提问者采纳
以上是关于JS 字符串转换成数组,再判断某个字符串是不是存在数组中,如果存在删除,不存在添加的主要内容,如果未能解决你的问题,请参考以下文章