我在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(',')。它返回相同的数组。
答案 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)
我认为你有一系列的对象。使用concat
和split
可以为您提供所需的输出。
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);
答案 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;
}