我刚刚发现了chromestatus.com,在我失去了几个小时之后,发现了这个功能条目:
地图:地图对象是简单的键/值映射.
那让我困惑.常规的JavaScript对象是字典,所以Map与字典有什么不同?从概念上讲,它们是相同的(根据 地图和字典之间的区别是什么?)
文档chromestatus引用也没有帮助:
映射对象是键/值对的集合,其中键和值都可以是任意ECMAScript语言值.不同的键值只能出现在Map集合中的一个键/值对中.使用在创建Map时选择的比较算法区分不同的键值.
Map对象可以按插入顺序迭代其元素.必须使用散列表或其他机制来实现Map对象,这些机制平均提供对集合中元素数量的次线性访问时间.此Map对象规范中使用的数据结构仅用于描述Map对象所需的可观察语义.它不是一个可行的实施模型.
...对我来说仍然听起来像是一个对象,显然我错过了一些东西.
为什么JavaScript获得(受到良好支持的)Map对象?它有什么作用?
如何将一个JSON.stringify()一集?
在Chromium 43中无效的事情:
var s = new Set(['foo', 'bar']);
JSON.stringify(s); // -> "{}"
JSON.stringify(s.values()); // -> "{}"
JSON.stringify(s.keys()); // -> "{}"
Run Code Online (Sandbox Code Playgroud)
我希望得到类似于序列化数组的东西.
JSON.stringify(["foo", "bar"]); // -> "["foo","bar"]"
Run Code Online (Sandbox Code Playgroud) var a = new Map([[ 'a', 1 ]]);
a.get('a') // 1
var forStorageSomewhere = JSON.stringify(a);
// Store, in my case, in localStorage.
// Later:
var a = JSON.parse(forStorageSomewhere);
a.get('a') // TypeError: undefined is not a function
Run Code Online (Sandbox Code Playgroud)
不幸的是JSON.stringify(a);简单地返回'{}',这意味着当恢复时它变成一个空对象.
我发现es6-mapify允许在Map和普通对象之间进行向上/向下转换,因此这可能是一个解决方案,但我希望我只需依靠外部依赖来持久保存我的地图.
我不明白我做错了什么,当我尝试获取json时,我的服务器返回"undefined".
POST(url, data) {
var headers = new Headers(), authtoken = localStorage.getItem('authtoken');
headers.append("Content-Type", 'application/json');
if (authtoken) {
headers.append("Authorization", 'Token ' + authtoken)
}
headers.append("Accept", 'application/json');
var requestoptions = new RequestOptions({
method: RequestMethod.Post,
url: this.apiURL + url,
headers: headers,
body: data
})
return this.http.request(new Request(requestoptions))
.map((res: Response) => {
if (res) {
return { status: res.status, json: res.json() }
}
});
}
Run Code Online (Sandbox Code Playgroud)
我的功能:
login(username, password) {
this.POST('login/', {test: 'test'}).subscribe(data => {
console.log(data)
})
}
Run Code Online (Sandbox Code Playgroud)
当我尝试这个时,请求体看起来像这样:
因此,它不是发送实际的json,而是发送"[object Object]".它不应该是"请求有效载荷",而应该是"JSON".我究竟做错了什么?
我是亚马逊s3的新手,我正在尝试使用node.js将JSON上传到文件中.我的目标是users,它有一堆键和值.以下是我上传的方式:
s3.putObject({Bucket: 'currenteventstest',Key: 'users.json',Body: users, ContentType: "application/json"});
Run Code Online (Sandbox Code Playgroud)
但是,当我下载它时,它只是一个空对象.
javascript ×4
ecmascript-6 ×3
json ×3
dictionary ×2
amazon-s3 ×1
angular ×1
node.js ×1
rest ×1
typescript ×1