【发布时间】:2017-11-02 19:30:27
【问题描述】:
我正在使用类似于以下的对象(虽然这个对象有 4 个键/值对,但我的实际对象可以有任意数量):
var myObj = {
action: 'open',
card: 'Comment card name',
id: '54AEF364',
url: 'www.myurl.com'
};
我正在尝试将键和值添加到单个字符串中,以“:”和“|”分隔,如下所示:
var myString = 'action:open|card:Comment card name|id:54AEF364|url:www.myurl.com'
我正在尝试使用 for...in 循环来做到这一点:
for (var i in myObj) {
var myString += i + ':' + myObj[i] + '|';
}
我能够得到我需要的大部分东西,但有两个例外:
- 'undefined' 出现在第一个属性名称之前
- 对于最后一个键/值对,不应有“|”在最终值之后,因为这是字符串的结尾
我怎样才能做到这一点?
【问题讨论】:
-
订单重要吗?
-
从 myString 中删除最后一个字符。 Have a look here
-
如果顺序很重要,请注意属性键顺序在技术上未指定(即不保证按任何顺序)。然而,除了解析为数字的键之外,大多数浏览器都会保留键顺序。
-
@JochenBedersdorfer 同意该评论,OP 应阅读此答案:Does JavaScript Guarantee Object Property Order?。这个问题从根本上是有缺陷的。没有“第一个”或“最后一个”属性这样的东西。
标签: javascript object