如何在javascript中使用无序索引迭代对象
How to iterate over an object in javascript with an unordered index
我正在创建一个播放列表系统,其中每首歌都有一个唯一的ID。当您将歌曲添加到播放列表数组时,其索引将被注册为其ID。
通常在javascript数组上循环时,您获取长度并通过索引进行计数。有没有一种方法来循环通过一个数组与未使用的索引?这种做法有什么不好的吗?
var obj = {"123": "Lalala",
"456": "dum dum"};
for(var i in obj){
//i = ID
// obj[i] = "song"
}
使用for(var i in obj)
循环遍历对象。参见上面的注释来理解这个for
-语句的含义。
你说的是对象,而不是数组,顺便说一下:
var array = [7, 5, 9];
可以用这种方法模拟阵列,因此可以使用for(var i=0; i<array_like.length; i++)
。数组函数(例如pop
)不能用于它们,除非您定义它:
var array_like = {0:7, 1:5, 2:9, length:3};
您可以通过以下两种方式访问对象的属性。或者使用".",例如:
var my prop = obj.property;
或通过括号符号:
var my prop = obj["property"];
这并没有真正回答你的问题。所以,这里有一些方法:
使用jQuery的每个函数:
$.each(obj, function(key, value){
//Do something with your key and value.
});
使用Javascript for函数:
for(var key in obj)
{
var value = obj[key];
//Do something with your key and value.
}
希望有帮助!
您也可以只做for each
来迭代属性值:
var obj = {"key1": "val1",
"key2": "val2"};
for each(var value in obj) {
....
}
但是在这种情况下,您无法访问属性名称
假设数组的格式为:
array['id1'] = 'val1';
array['id2'] = 'val2';
array['id3'] = 'val3';
您可以使用:
来遍历这些值:for (var id in array) {
document.write(id + ' – ' + array[id]);
}
相关文章:
- 名称输入的索引
- 在jQuery中获取表的行索引
- 测试索引值是否等于某个数字的倍数
- 循环遍历数组中的特定索引
- 按照选项卡索引的顺序循环一个jQuery选择
- 在JavaScript中通过索引从对象数组中获取值
- 尝试在PHP中回显输入文本时出现未定义的索引错误
- 在索引.html和应用.js [node.js] 之间共享变量
- 如何为高图中的区域线创建z索引
- 下拉列表在使用z索引放置在前面后停止工作
- 减去两个索引不同但值相同的整数
- 如何通过所选索引(AngularJS)在模态弹出窗口中显示数据
- Javascript:根据对象的嵌套数组中的值,在数组中查找对象的索引
- 用javascript查询lucene索引
- 使用它更新集合中的嵌套数组's索引
- 如何将ng选项的索引作为angularJs中的值传递给模型
- 如何使用 javascript 获取无序列表中单选按钮的选定索引和值
- jQuery:单击时如何确定无序列表中
- 元素的索引
- 如何在javascript中使用无序索引迭代对象
- Javascript递归对象无序列表为父对象保留相同的索引