javascript - 在数组数组中循环

标签 javascript node.js

在我的下面的代码中,我无法获取数组中的数据

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/

相关文章:

javascript - webpack 前端和后端都可以工作吗?

javascript - 创建时隐藏框

javascript - 如何在图中显示多个节点内容(Cytoscape 样式表)

javascript - 以 CSS 中定义的单位获取元素的宽度

jquery - 为什么 onclick 函数不能在类上运行?

node.js - docker logs 不记录分离的 exec

javascript - JQuery:如何将函数应用于哈希值?

javascript - 如何在 Angular 中使用 Controller 定位 html 元素?

node.js - 使用自定义方法扩展 ExpressJS/Response 对象的正确方法是什么?

javascript - Node JS 异步 I/O 执行