感觉自己弱爆了,如何将这货转换为目标格式啊

2015-05-15 07:36:41 +08:00
 pinkman
现在得到的返回是
$.each(entries, function(idx, entry) {
console.log(entry);
});

key
value
john
JOHN
doe
DOE
foo
FOO
bar
BAR

最终的输入是:[{"key": "john", "value": "JOHN"}, {"key": "doe", "value": "DOE"}, {"key": "foo", "value": "FOO"}, {"key": "bar", "value": "BAR"}]

发现自己连这都做不出来,太受打击了...
3042 次点击
所在节点    JavaScript
11 条回复
mringg
2015-05-15 07:38:20 +08:00
json_array
ekousp
2015-05-15 07:45:55 +08:00
没看懂
Septembers
2015-05-15 08:03:55 +08:00
期望输出是?
jun4rui
2015-05-15 08:08:44 +08:00
期待输出的是key:value?
lk09364
2015-05-15 08:11:47 +08:00
先去找提问的智慧看看。
然后,如果我没理解错的话,你有一个 array ,如下:
```
var arr = ['key','value','john','JOHN','doe','DOE','foo','FOO','bar','BAR'];
```
你希望输出如下的 array:
```
[{"key": "john", "value": "JOHN"}, {"key": "doe", "value": "DOE"}, {"key": "foo", "value": "FOO"}, {"key": "bar", "value": "BAR"}]
```

如果上述无误,你可以这样做:
```
var k1 = arr[0], k2 = arr[1], result = [];
for (var i = 2; i < arr.length; i+=2) {
var obj = {};
obj[k1] = arr[i];
obj[k2] = arr[i+1];
result.push(obj);
}
```
oott123
2015-05-15 08:12:33 +08:00
脱离 jQuery ,最容易的思路大概是:
首先拿到前两个字符串作为元素的键;
然后用一个步进为 2 的 for 循环生成剩下的内容。
oott123
2015-05-15 08:13:06 +08:00
_(:з」∠)_比 5 楼慢了几秒钟…
pinkman
2015-05-15 08:15:17 +08:00
@lk09364 太感谢了!下一次我一定从提好问题开始!学习了!
pinkman
2015-05-15 08:16:37 +08:00
@lk09364 再说一次感谢!可惜不能多发送几次感谢
nevernet
2015-05-15 09:22:06 +08:00
v2ex不支持markdown确实很蛋疼
9
2015-05-15 10:43:10 +08:00
@nevernet +1 对于不支持markdown也是表示不可理解。

回复的时候没有楼层显示,也让我找回复的时候多花费了很多时间。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/191207

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX