如何从javascript中的字符串构建数组?
我试图从一个看起来像这样的刺中获取一些值:如何从javascript中的字符串构建数组?,javascript,Javascript,我试图从一个看起来像这样的刺中获取一些值: W1:0.687268668116, URML:0.126432054521, MH:0.125022031608, W2:0.017801539275, S3:0.00869514129605, PC1:0.00616885024382, S5L:0.0058163445156, RM1L:0.00540508783268, C2L:0.00534633687797, S4L:0.00475882733094, S2L:0.0034663063274
W1:0.687268668116, URML:0.126432054521, MH:0.125022031608, W2:0.017801539275, S3:0.00869514129605, PC1:0.00616885024382, S5L:0.0058163445156, RM1L:0.00540508783268, C2L:0.00534633687797, S4L:0.00475882733094, S2L:0.00346630632748
我想创建一个包含所有键的数组和另一个包含所有值的数组,即[W1,URML,MH…]和[0.687268668116,0.126432054521…]
我有一段代码可以实现这一点,但只针对第一个值:
var foo = str.substring(str.indexOf(":") + 1);
这将为您提供
键
和值
数组
var keys = str.match(/\w+(?=:)/g),
values = str.match(/[\d.]+(?=,|$)/g);
正则表达式可视化
/\w+(?=:)/g
/[\d.]+(?=,|$)/g
和另一个不使用regexp的解决方案
var pairs = str.split(" "),
keys = pairs.map(function(e) { return e.split(":")[0]; }),
values = pairs.map(function(e) { return e.split(":")[1]; });
使用split()
此处演示:
无
forEach()
(即<9):
var-keys=[];
var值=[];
变量对=str.split(',');
for(变量i=0,n=pairs.length;i
将字符串解析为数组
var str = "W1:0.687268668116, URML:0.126432054521, MH:0.125022031608, W2:0.017801539275";
var tokens = str.split(",");
var values = tokens.map(function (d) {
var i = d.indexOf(":");
return +d.substr(i + 1);
});
var keys = tokens.map(function (d) {
var i = d.indexOf(":");
return d.substr(0, i);
});
console.log(values);
console.log(keys);
这是演示
var str=“W1:0.687268668116,URML:0.126432054521,MH:0.125022031608,W2:0.017801539275,S3:0.00869514129605,PC1:0.00616885024382,S5L:0.005816344556,RM1L:0.00540508783268,C2L:0.00534633687797,S4L:0.00475882733094,S2466332748”;
var all=str.split(“,”),
arrayOne=[],
arrayTwo=[];
对于(变量i=0;i
str.split(“”.map(function(elem){return elem.split(“”):“”[1]};这是一个很好的实现,但请注意,forEach仅在支持ECMAScript 5的浏览器中实现,因此您需要为IE8和更早版本安装一个垫片,因为IE8和更早版本仍然是大部分internet用户。
var keys = [];
var values = [];
var pairs = str.split(', ');
for (var i = 0, n = pairs.length; i < n; i++) {
var pair = pairs[i].split(':');
keys.push(pair[0]);
values.push(pair[1]);
};
var str = "W1:0.687268668116, URML:0.126432054521, MH:0.125022031608, W2:0.017801539275";
var tokens = str.split(",");
var values = tokens.map(function (d) {
var i = d.indexOf(":");
return +d.substr(i + 1);
});
var keys = tokens.map(function (d) {
var i = d.indexOf(":");
return d.substr(0, i);
});
console.log(values);
console.log(keys);
var str = "W1:0.687268668116, URML:0.126432054521, MH:0.125022031608, W2:0.017801539275, S3:0.00869514129605, PC1:0.00616885024382, S5L:0.0058163445156, RM1L:0.00540508783268, C2L:0.00534633687797, S4L:0.00475882733094, S2L:0.00346630632748";
var all = str.split(","),
arrayOne = [],
arrayTwo = [];
for (var i = 0; i < all.length; i++) {
arrayOne.push(all[i].split(':')[0]);
arrayTwo.push(all[i].split(':')[1]);
}