将多个数组值包含在jquery中的逗号分隔值转换为单个数组

时间:2015-10-15 17:00:19

标签: javascript jquery

我在java脚本中有数组,如

数组[no:" 54",no:" 55,57",no:" 58",no:" 60,61&# 34;,无:" 63"]

我想得到像[54,55,57,58,60,61,63]那样的数组。

当我编写像这样的代码时:

var bstr=[],i=0;
$.each( obj, function( key, value )
{ 
bstr[i++]=value.no;

}
alert(bstr); 

最后我的数组输出是[54,55,58,60,63]。缺少逗号分隔值。我尝试过value.no.split(',')。它返回相同的数组。

5 个答案:

答案 0 :(得分:3)

您需要修复您正在谈论的array。我相信您需要array objects

var obj = [ {no:"54"},{ no:"55,57"},{no:"58"},{no:"60,61"},{no:"63"}];
var bstr=[],i=0;
$.each( obj, function( key, value )
{    
     $.each(value.no.split(','),function(index,item){
     	bstr[i++]=item;
     });
     

});  // You missed closing this properly
console.log(bstr);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

答案 1 :(得分:0)

我认为你有一系列的对象。使用concatsplit可以为您提供所需的输出。

var obj =  [ {"no":"54"}, {"no":"55,57"},{"no":"58"},{"no":"60,61"},{"no":"63"}]
var bstr=[],i=0;
$.each(obj, function( key, value )
{ 
    bstr = bstr.concat(value.no.split(","));
});
alert(bstr);

http://jsfiddle.net/e8jn9pj5/

答案 2 :(得分:0)

你可以在2个数组上进行jquery合并(1个来自split,1个来自bstr)。 https://jsfiddle.net/v4hoLes9/

var obj = [ {no:"54"}, {no:"55,57"},{no:"58"},{no:"60,61"},{no:"63"}];
var bstr=[];
$.each( obj, function( key, value ){ 
    bstr = $.merge(bstr, value.no.split(','));
});
alert("array length: " + bstr.length + "  values: " + bstr);

答案 3 :(得分:0)

您可以使用reduce和一种奇特的方法来使用JSON.parse

创建数组
var arr = [ {no:"54"},{ no:"55,57"},{no:"58"},{no:"60,61"},{no:"63"}];
var updated = arr.reduce( function(previousValue, currentValue){
     var val = JSON.parse("[" + currentValue.no + "]");
     return previousValue.concat(val);
}, []);

这会产生一个数字数组,而不是像split()

那样的字符串

答案 4 :(得分:0)

以逗号分隔的连接将 no 映射到如下所示的结果数组

let obj = [{
  "no": "54"
}, {
  "no": "55,57"
}, {
  "no": "58"
}, {
  "no": "60,61"
}, {
  "no": "63"
}]

let result = [];
result.push(obj.map(x => x.no).join(','));

console.log(result);
.as-console-wrapper {
  max-height: 100% !important;
  top: 0;
}