javascript初学,遇到一个问题,对象可以像数组一样使用

wangdan_2013 2017-09-08 04:27:08
var twoSum = function(nums, target){
var saved={};
var result=[];
for(var i=0; i< nums.length; i++){
if(saved.hasOwnProperty(nums[i])){
result[0] = saved[nums[i]] + 1;
result[1] = i + 1;
return result
}
saved[target - nums[i]] = i;
}
};

这个function中saved为什么可以写成saved[num[i]]这样?
很疑惑,没有遇到过,大神给解释下吧,谢谢啦
...全文
307 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangdan_2013 2017-09-11
  • 打赏
  • 举报
回复
谢谢各位的解惑,很详细,谢谢大家
赵天明 2017-09-10
  • 打赏
  • 举报
回复
你要理解对象属性的使用方法,有两种: 1.点语法:例 obj.name,但要注意,这种方式不能使用变量和以用数字作为属性名的属性。 2.[]方法:例 obj['name'](name为字符串,需要加引号)或obj[attr] (attr为变量,变量只能用这种方式)或obj[number] (number为数字,不要加引号) 一般很少使用数字作为对象的属性名,刚好你这个函数就是这样的。
qq_35269473 2017-09-10
  • 打赏
  • 举报
回复
访问对象属性可以用 . 和 [] 两种方式
天际的海浪 2017-09-09
  • 打赏
  • 举报
回复
是的。访问对象属性可以用 . 和 [] 两种方式 obj["test"] 等价于 obj.test 区别是 obj.test 中的属性名只能在代码中写死。 而obj["test"] 中的属性名是个字符串。这就可以用变量动态指定属性名。 var str = "test"; obj[str]
cuihu811371804 2017-09-09
  • 打赏
  • 举报
回复
js中数组和对象在存储数据方面基本差不多,都可以使用[], 仅仅是存储数据的时候对象比数组稍微灵活(在es5中可以做出类似字典效果) 但数组处理更有效果,数组也可以类似于对象的操作,比如 var k = [] k[5]=1 k.length = 5 但这样是违背了数组高效原则的, 而如果数组这样,k['fd']=3 这个时候数组存储数据和对象就很类似乐
Go 旅城通票 2017-09-08
  • 打赏
  • 举报
回复
对象可以通过点操作符或者[]操作符取值,有什么问题? 通过点操作符属性需要符合变量名规范,包含非变量名合法字符需要使用[]去属性 如
o={a:1,"*&^":2}
alert(o.a)
alert(o['*&^']);
//alert(o.*&^);//报错


Web开发学习资料推荐
javascript客户端图片预览
javascript运行机制浅析

87,923

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧