【问题标题】:Javascript Object formattingJavascript 对象格式化
【发布时间】:2015-07-06 04:21:08
【问题描述】:
[
   [
       {"path":"path2","value":"kkk"},
       {"path":"path0","value":"uuu"},
       {"path":"path1","value":"ppp"}
   ]
]

我的操作得到了上述结果,但我需要它如下。

["path":"path2","value":"kkk"],
["path":"path0","value":"uuu"],
["path":"path1","value":"ppp"]

这是我的代码:

$scope.sharePaths[d.id] = []
d.conf.paths = []
$scope.sharePaths[d.id][index] = []

commaPath = 'kkk,uuu,ppp'
a = commaPath.split(',')
for key of a
  value = a[key]
  $scope.sharePaths[d.id][index].push {'path':'path'+key, 'value':a[key]}
  d.conf.paths.push {'path':'path'+key, 'value':a[key]}

【问题讨论】:

  • 你的预期结果是无效结构
  • 你的第二行看起来很奇怪,你不希望它是:[{"path":"path2","value":"kkk"},{"path":"path0", "value":"uuu"},{"path":"path1","value":"ppp"}]
  • @David 是的,请告诉我该怎么做?
  • 那么push语句需要用括号括起来 .push({'path':'path'+key, 'value':a[key]});还有“a”的值是什么样的?
  • 真的没必要改,用数组的第一个元素代替整个数组就行了。如果你的输出是 data ...那么 data[0] 正是你要找的

标签: javascript arrays angularjs object


【解决方案1】:

只需使用数组的第一个元素。变量data 的格式已正确。您想要的新格式不是有效的 JSON。

var data = [[{"path":"path2","value":"kkk"},{"path":"path0","value":"uuu"},{"path":"path1","value":"ppp"}]];

data = data[0];

【讨论】:

  • 不,它仍然返回整个,
猜你喜欢
  • 2019-03-20
  • 2012-10-08
  • 1970-01-01
  • 2018-07-18
  • 2016-07-05
  • 2020-11-05
  • 1970-01-01
  • 1970-01-01
  • 2021-10-20
相关资源
最近更新 更多