将javascript字符串转换为数组

将javascript字符串转换为数组,javascript,arrays,Javascript,Arrays,我有这样的绳子 '10:00','13:00','12:00','15:00','08:00','12:00' 我需要这样的格式 '10:00','13:00','12:00','15:00','08:00','12:00' 阵列(3) 我尝试过分割法,但没有成功。 var str=“'10:00'、'13:00'、'12:00'、'15:00'、'08:00'、'12:00'; var oldArray=str.split(','); var newArray=[]; wh

我有这样的绳子

    '10:00','13:00','12:00','15:00','08:00','12:00'
我需要这样的格式

    '10:00','13:00','12:00','15:00','08:00','12:00'
阵列(3)


我尝试过分割法,但没有成功。

var str=“'10:00'、'13:00'、'12:00'、'15:00'、'08:00'、'12:00';
var oldArray=str.split(',');
var newArray=[];
while(oldArray.length){
让start=0;
设end=2;
newArray.push(oldArray.slice(start,end));
oldArray.拼接(起点、终点);
}

log(newArray)您可以将单引号替换为双引号,添加括号并将其解析为,然后获得一个数组,该数组由两个元素分组

var string=“'10:00'、'13:00'、'12:00'、'15:00'、'08:00'、'12:00',
array=JSON
.parse('['+string.replace(/'/g'')+']'))
.reduce((r,s,i)=>r.concat([i%2?r.pop().concat:[s]]),[]);
console.log(数组);

。作为控制台包装{max height:100%!important;top:0;}
您可以使用
String.split(',')
将其拆分为单独的值,然后根据它们的位置对它们进行分组(用2整除的结果)

我使用30秒的代码(免责声明:我是项目/网站的维护者之一)将元素按整数除以2进行分组。简要说明:

使用
Array.map()
将数组的值映射到函数或属性名。使用
Array.reduce()
创建一个对象,其中键是从映射结果生成的

结果是一个对象,但可以使用
object.values()
轻松转换为数组,如下所示:

var data=“'10:00'、'13:00'、'12:00'、'15:00'、'08:00'、'12:00';
const groupBy=(arr,fn)=>
arr.map(typeof fn==“function”?fn:val=>val[fn])。reduce((acc,val,i)=>{
acc[val]=(acc[val]| |[])。concat(arr[i]);
返回acc;
}, {});
var arr=data.split(',');
arr=分组比(arr,(v,i)=>数学层(i/2));
arr=对象值(arr);
console.log(arr);
.as控制台包装{最大高度:100%!重要;顶部:0;}
如何:

"'10:00','13:00','12:00','15:00','08:00','12:00'"
.replace(/'/g, '').replace(/(,[^,]*),/g,"$1;")
.split(';').map(itm => itm.split(','))

在这种情况下,您需要比较两个值。 为此,您可以创建一个for循环,读取当前值和最后一个值,并对两者进行比较。 如果最后一个值高于当前值,则发生拆分逻辑


可以将当前值添加到结果数组中的最后一项(字符串数组),也可以在结果数组的末尾添加新的字符串数组。

一种可能的解决方案:

let S = "'10:00','13:00','12:00','15:00','08:00','12:00'";

let R = S.split(',');

let I = 0;

let A = new Array([],[],[]);

R.map((object, index) => {
    A[I][index % 2] = R[index];
    if (index % 2 == 1) I++;
});

console.log(A);

我认为使用
JSON.parse
更好:

var数组=“'10:00'、'13:00'、'12:00'、'15:00'、'08:00'、'12:00';
array=JSON.parse('['+array.replace(/'/g''')+']');
var array2=[];
对于(var i=0;i控制台日志(array2)“我尝试了拆分方法,但没有成功。”请显示您的代码。这可能会有帮助@kgbph您永远不应该扩展内置的原型。例如,永远不要扩展
数组。prototype
@str为什么不?如果有很好的文档记录,扩展原型是非常好的。当然,你需要处理好冲突。但如果有人扩展了原型,他/她应该知道他们到底在做什么。@Akaino