javaScript-添加键&;对象的值

javaScript-添加键&;对象的值,javascript,object,Javascript,Object,我的函数中有一个forEach用于创建对象: 请运行代码段: angular.module('myApp',[]).controller('myCntl',function($scope){ $scope.t=''; var input=“a、b、c、d、e、r\n1,1,1,1,1\n2,2,2,2,1\n3,3,3,3,1”; var rows=input.split('\n'); var结果={ 标题:[], 正文:[] }; //获取标题 var headerString=行[0]。拆

我的函数中有一个forEach用于创建对象:
请运行代码段:

angular.module('myApp',[]).controller('myCntl',function($scope){
$scope.t='';
var input=“a、b、c、d、e、r\n1,1,1,1,1\n2,2,2,2,1\n3,3,3,3,1”;
var rows=input.split('\n');
var结果={
标题:[],
正文:[]
};
//获取标题
var headerString=行[0]。拆分(',');
headerString.forEach(函数(val){
结果.收割台.推送(val);
});
行拼接(0,1);
rows.splice(rows.length-1,rows.length);//从结束数组中删除“”行
//获取主体“a,b,c,d,…”
rows.forEach(函数(val,i){
var bodyString=val.split(',');
var objBody=新对象;
bodyString.forEach(函数(val,i){
var strHeader=result.header[i];
对象体[strHeader]=val;
});
结果.车身.推力(车身);
});
$scope.result=result.body;
$scope.show=函数(){
log($scope.result)
$scope.t=$scope.result;
}
});

点击我
{{item}}

问题是由于输入字符串中的
r
\n
之间存在空格引起的。按
\n
拆分字符串时,
行[0]
将为
“a、b、c、d、e、r”
。用逗号拆分后,最后一个元素将包含如下空白
“r”

所以只需更改下面的代码行

var input = "a,b,c,d,e,r \n1,1,1,1,1,1\n2,2,2,2,2,1 \n3,3,3,3,3,1";

来解决这个问题

angular.module('myApp',[]).controller('myCntl',function($scope){
$scope.t='';
var input=“a、b、c、d、e、r\n1,1,1,1,1\n2,2,2,2,1\n3,3,3,3,1”;
输入=输入。替换(“,”);
控制台日志(输入);
var rows=input.split('\n');
var结果={
标题:[],
正文:[]
};
//获取标题
var headerString=行[0]。拆分(',');
headerString.forEach(函数(val){
结果.收割台.推送(val);
});
行拼接(0,1);
rows.splice(rows.length-1,rows.length);//从结束数组中删除“”行
//获取主体“a,b,c,d,…”
rows.forEach(函数(val,i){
var bodyString=val.split(',');
var objBody=新对象;
bodyString.forEach(函数(val,i){
var strHeader=result.header[i];
对象体[strHeader]=val;
});
结果.车身.推力(车身);
});
$scope.result=result.body;
$scope.show=函数(){
log($scope.result)
$scope.t=$scope.result;
}
});

点击我
{{item}}

我解决了按regexExp拆分的问题:

var myRegex = new RegExp(/\s*\n/);
var rows = input.split(myRegex);

此命令拆分字符串中的每个'\n'。这是我的工作

bodyString
中有什么?您的代码没有输出。/?的结果是什么?objectTmp的内部是什么?@Gilsha谢谢,但是你的asnwer没有给我显示。请再次检查。嘿,伙计们,我试着编辑我的代码片段,这是正确的。现在请检查代码段。运行它并检查控制台的日志。有一个问题,我的输入是动态的,可能有很多空格。
var myRegex = new RegExp(/\s*\n/);
var rows = input.split(myRegex);