在我的下面的代码中,我无法获取数组中的数据
var str = "Service1|USER_ID, Service1|PASSWORD"
var str_array = str.split(',');
console.log(str_array)
for(var i = 0; i < str_array.length; i++)
{
str_array[i] = str_array[i].split('|');
}
console.log(str_array)
这是上面代码的响应
/* [ [ 'Service1', 'USER_ID' ],
[ 'Service1', 'PASSWORD' ] ]*/
我希望响应位于两个不同的数组中,如下所示
var array1 = ['Service1']
var array2 = ['USER_ID','PASSWORD']
对此的任何帮助都会非常有帮助
最佳答案
由于您在 Node 上,you can do this:
var str = "Service1|USER_ID, Service1|PASSWORD";
var result = str.split(',').reduce(function(collected,splitByComma){
var splitData = splitByComma.split('|');
var key = splitData[0].replace(/\s+/gi,''); //Might want to improve this "trim"
var data = splitData[1];
if(!collected.hasOwnProperty(key)) collected[key] = [];
collected[key].push(data);
return collected;
},{});
console.log(JSON.stringify(result)); //{"Service1":["USER_ID","PASSWORD"]}
//result.Service1[0] == USER_ID
//result.Service1[1] == PASSWORD
将东西放在不同的地方是不明智的。不过,您可以将它们放在对象键下。如果服务名称是可变的,那么你可以这样做:
var serviceName = "Service1";
result[serviceName][0] == USER_ID
result[serviceName][1] == PASSWORD
关于javascript - 在数组数组中循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23029020/