Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数组转换为Nodejs中类似子对象的字符串_Javascript_Node.js - Fatal编程技术网

Javascript 将数组转换为Nodejs中类似子对象的字符串

Javascript 将数组转换为Nodejs中类似子对象的字符串,javascript,node.js,Javascript,Node.js,我有四个阵列: var attributes = ["a","b","c","d"]; var a = [1,2,3]; var b = [34,55,66]; var c = [22,23,53]; var d = [15,78,98]; 如何在Nodejs中将它们合并成一个类似json的字符串 [{"a":1,"b":34,"c":22,"d":14}, {"a":2,"b":55,"c":23,"d":78}, {"a":3,"b":66,"c":53,"d":98}] 这是我的代

我有四个阵列:

var attributes = ["a","b","c","d"];
var a = [1,2,3];
var b = [34,55,66];
var c = [22,23,53];
var d = [15,78,98];
如何在Nodejs中将它们合并成一个类似json的字符串

[{"a":1,"b":34,"c":22,"d":14},
 {"a":2,"b":55,"c":23,"d":78},
 {"a":3,"b":66,"c":53,"d":98}]
这是我的代码,但谁有更好的解决方案?我确实需要保留报价

var a=[1,2,3];
var b=[34,55,66];
var c=[22,23,53];
var d=[15,78,98];
var obj=“[”;
对于(var u=0;u控制台日志(obj)假设所有数组长度相同,并硬编码它们的名称:

   var obj = []
    for (var u = 0; u < a.length; u++) {
        obj.push({
            'a': a[u],
            'b': b[u],
            'c': c[u],
            'd': d[u]
        });
    };
    obj = JSON.stringify(obj);
var obj=[]
对于(var u=0;u

编辑:将obj转换为json字符串,问题被错误地编辑为请求数组。

这段代码将实现以下功能:

var arrays = [a, b, c, d]; // add all the arrays you want
var num = a.length; // or hardcode to the length you want

var result = [];
for(var i = 0; i < num; i++) {
    var element = {};
    attributes.forEach(function(attr, index) {
        element[attr] = arrays[index][i];
    });
    result.push(element);
}
var数组=[a,b,c,d];//添加所需的所有阵列
var num=a.length;//或者硬编码到您想要的长度
var结果=[];
对于(变量i=0;i
var属性=[“a”、“b”、“c”、“d”];
var a=[1,2,3];
var b=[34,55,66];
var c=[22,23,53];
var d=[15,78,98];
变量数组=[a,b,c,d];
var结果=[];
var num=a.长度;
对于(变量i=0;i
var属性=[“a”、“b”、“c”、“d”];
var a=[1,2,3];
var b=[34,55,66];
var c=[22,23,53];
var d=[15,78,98];
var x=[];

对于(var i=0;i我知道这个问题已经有多个答案,但似乎没有一个答案能够将键数组作为变量来处理,属性数组中引入了谁的名字。因为我假设这是属性数组的点,所以我的解决方案只使用节点的全局范围。它也不假设所有键数组都是未指定与该长度相同的长度(即使示例中已指定)

var属性=[“a”、“b”、“c”、“d”];
var a=[1,2,3];
var b=[34,55,66];
var c=[22,23,53];
var d=[15,78,98];
var-arr=[];
while(true){
var obj={};
对于(var i=0;i


重要提示如果数组实际上不在全局范围内,但在其他对象中,您可以使用该对象代替
global

仅供参考-我从您的问题中删除了对JSON的提及,因为JSON是一种文本格式,用于表示需要通过套接字发送或保存在文件中的数据estion是关于内存中的数据,与JSON无关。您需要将您尝试过的代码添加到您的问题中。谢谢!您的代码的结果是[{a:1,b:34,c:22,d:15},{a:2,b:55,c:23,d:78},{a:3,b:66,c:53,d:98}]。如何获得“a”而不是a.[{a:1,b:34,c:22,d:14},{a:2,b:55,c:23,d:78}{“a:3,b:66,c:53,d:98}]不是[{a:1,b:34,c:22,d:15},{a:2,b:55,c:23,d:78},{a:3,b:66,c:53,d:98}]有人编辑了你的问题,要求使用数组。我编辑了我的答案,将其转换为json字符串
var attributes = ["a","b","c","d"];
var a = [1,2,3];
var b = [34,55,66];
var c = [22,23,53];
var d = [15,78,98];

var x = [];

for (var i=0;i<3;i++) {
  var obj = {};
  for (var j=0;j<attributes.length;j++){
    obj[attributes[j]]=eval(attributes[j]+"["+i+"]");
  }
  x.push(obj);
}
console.log(x);
var attributes = ["a","b","c","d"];
var a = [1,2,3];
var b = [34,55,66];
var c = [22,23,53];
var d = [15,78,98];
var arr = [];
while(true){
    var obj = {};
    for(var i=0;i<attributes.length;i++){
    if(global[attributes[i]].length)obj[attributes[i]]=global[attributes[i]].shift();
  }
  if(Object.keys(obj).length)
    arr.push(obj);
  else
    break;
}