Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.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 如何在控制器中格式化JSON数据_Javascript_Angularjs_Arrays_Json - Fatal编程技术网

Javascript 如何在控制器中格式化JSON数据

Javascript 如何在控制器中格式化JSON数据,javascript,angularjs,arrays,json,Javascript,Angularjs,Arrays,Json,我不熟悉AngularJS和JSON。我陷入了这个阶段,我想过滤JSON中不必要的字段 我在控制器中使用了以下代码: var data = $scope.choices; // Is an array var datav = (JSON.stringify(data)); // array converted into a string need to be filtered alert(datav); 如果我alertdatav得到的是下面提到的JSON数据 [{"title":"g","$

我不熟悉AngularJS和JSON。我陷入了这个阶段,我想过滤JSON中不必要的字段

我在控制器中使用了以下代码:

var data = $scope.choices; // Is an array
var datav = (JSON.stringify(data)); // array converted into a string need to be filtered
alert(datav);
如果我alertdatav得到的是下面提到的JSON数据

[{"title":"g","$$hashKey":"object:3"},{"id":"choice2","$$hashKey":"object:6","title":"ghgh"},{"id":"choice3","$$hashKey":"object:11","title":"fgh"}]
我只想要标题,我不想要$$hashKey和id。如何做到这一点?

您可以使用函数实现您想要的功能,并仅返回您感兴趣的属性

var data=[{title:g,$$hashKey:object:3},{id:choice2,$$hashKey:object:6,title:ghgh},{id:choice3,$$hashKey:object:11,title:fgh}]; var datav=data.mapd=>{title:d.title}; console.logdatav您可以使用angular.toJson代替JSON.stringify,后者将为您省略$$hashkey

将输入序列化为JSON格式的字符串。前导$$字符的属性将被剥离,因为AngularJS在内部使用此符号

像这样,

var myobj=[{ 标题:g, $$hashKey:对象:3 }, { id:choice2, $$hashKey:对象:6, 标题:ghgh }, { id:choice3, $$hashKey:object:11, 标题:fgh }] console.logangular.toJsonmyobj console.logJSON.stringifymyobj 这就是如何从可使用的选项数组中映射所需对象的方法

首次接收阵列时:

 const data = [
  {title: "hello" , "unwanted" : 34},
  {title: "hello" , "unwanted" : 35},
  {title: "hello" , "unwanted" : 36},
  {title: "hello" , "unwanted" : 37},

]



const wanted = data.map( d => {
  return {title: d.title}
});

console.log(wanted);

我相信您正在使用第三方库。我猜是角度材质,它向下拉数组值添加了类似的$$haskey属性。理想情况下,这不会对数组进行任何更改,并且您应该仍然能够获取数组对象的属性

但是,如果您指定要删除这些不需要的属性,则应该使用.map函数从此数组中创建一个新数组。例如:

var newArray= orginalArray.map(element => ({title: element.title}));
您可以取出任意数量的属性,并留下不需要的属性。新数组与旧数组是完全不同的引用

希望这有帮助

试试这个

var app=angular.modulemyapp,[]; app.controllerNameCtrl,函数$scope{ var data=[{title:g,$$hashKey:object:3},{id:choice2,$$hashKey:object:6,title:ghgh},{id:choice3,$$hashKey:object:11,title:fgh}]; var data1=data.mapd=>{title:d.title}; console.logdata1; };
到目前为止你做了什么?你试过了吗?使用.map只返回你想要的标题,而不是因为idI给了他使用map函数的想法,他肯定能解决他需要的。@PrashanthHarish当然,我觉得这个问题有点误导,会为你编辑的。你可以在这里接受其他合适的答案什么是str??确保它是一个数组。这就是字符串na??您将数组字符串化为字符串。。现在解析它,然后使用.mapam gettin log作为[undefined,undefined]。@PrashanthHarish我的错误是,我犯了一个轻微的语法错误。看看这个
var newArray= orginalArray.map(element => ({title: element.title}));