将密钥添加到哈希
Add key to hash
正如你从我的代码中看到的,我正在尝试向哈希page_rank
添加一个键:
var page_rank = {};
function create_page_rank_row(step, url, page_rank){
if(page_rank[step]){
}else{
page_rank[step] = { urls: {}};
}
page_rank[step].urls[url] = page_rank;
};
create_page_rank_row(0, "d01", 3);
create_page_rank_row(0, "d02", 4);
document.getElementById("result").innerHTML = JSON.stringify(page_rank);
<p id="result">
</p>
但它不起作用,我收到错误:
Cannot read property 'urls' of undefined
我做错了什么?我该如何解决这个问题?谢谢
你用一个也称为 page_rank
的参数来遮蔽初始page_rank
变量。
当函数运行时,page_rank
设置为一个数字。当我们内联您传递的参数的值时,请查看代码。
function create_page_rank_row(step, url, page_rank){
if(3[step]){
}else{
3[step] = { urls: {}};
}
3[step].urls[url] = 3;
};
Javascript 不允许你在简单的基元值(如数字)上定义新属性。
也许将外部变量重命名为 page_ranks
.
您将 page_rank 参数作为整数调用函数,并使用数组括号访问它。这将始终返回 undefined,即使您设置了它。
var x = 3;
console.log(x[0]); //undefined
x[0] = 'something';
console.log(x[0]); //still undefined
var page_rank = {};
function create_page_rank_row(step, url, rank) {
if (!page_rank.hasOwnProperty(step)) {
page_rank[step] = {
urls: {}
};
}
page_rank[step].urls[url] = rank;
};
create_page_rank_row(0, "d01", 3);
create_page_rank_row(0, "d02", 4);
console.log(JSON.stringify(page_rank));
函数内第三个参数的名称被更改,hasOwnProperty 被添加到函数中
更改
function create_page_rank_row(step, url, page_rank){
自
function create_page_rank_row(step, url, newrank){
和
page_rank[step].urls[url] = page_rank;
自
page_rank[step].urls[url] = newrank;
相关文章:
- 动态添加哈希标记;t工作
- 单击引导模式锚点时添加 URL 哈希
- Angular ui路由器向url添加哈希
- 咕哝:咕哝rev任务通过添加随机哈希来更改我的图像,从而阻止我的html识别它们
- Jquery在尝试添加url参数时添加哈希符号
- 当用户将哈希添加到URL时,重新加载浏览器
- 为所有哈希链接/调用的滚动位置添加自动偏移量
- 路由不起作用 AngularJS,只是添加一个哈希
- 如何阻止任何滑块向 URL 添加哈希标签
- 为什么添加而不是替换 URL 哈希
- Div 叠加层淡入历史记录,并可使用哈希 URL 添加书签
- 将密钥添加到哈希
- AngularJS-自动向URL添加哈希标签-覆盖搜索参数
- 将动态键、值对添加到JavaScript数组或哈希表中
- AngularJS 1.1.5-自动向URL添加哈希标签
- 使用对象的属性作为键将对象添加到哈希/数组
- 自动热键将Javascript哈希添加到本地URL
- 向JavaScript中添加有序哈希数据类型是否合理?
- 每个图像的唯一URL(最好只添加哈希),直接显示弹出图像
- 在location.pathname前添加哈希值