JS 字符串转换成数组,再判断某个字符串是不是存在数组中,如果存在删除,不存在添加

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS 字符串转换成数组,再判断某个字符串是不是存在数组中,如果存在删除,不存在添加相关的知识,希望对你有一定的参考价值。

假如有个字符串是:var aa = 12,123,1234 将字符串转换成数组。。。
var bb = 12 ; 判断bb是否在数组中存在,如果存在添加到数组中,如果不在,从数组中删除。。。

求JS代码。。。跪谢。。。

参考技术A var aa = '12,123,1234';
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

追答var str = arr.join(",");

参考技术B 不存在添加?添加到哪?头?尾?
这用数组?
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 字符串转换成数组,再判断某个字符串是不是存在数组中,如果存在删除,不存在添加的主要内容,如果未能解决你的问题,请参考以下文章

js 判断数组中是不是包含

判断字符串中是不是包含某个字符串

js怎么判断某个数组里面是不是包含这个元素

js判断字符串是不是相等

js将字符串转换成对象和数组

js中怎么判断一个字符串是不是在另一个字符串中