var obj = {
0: 'Asad',
1: 'Ali',
2: 'Rizwan'
}
console.log(obj);
let FOREAC = Array.prototype.forEach;
FOREAC.apply(obj , ((item) => {
console.log('ITEM LOGS');
console.log(item);
return true;
}))
上面是我用来迭代我的对象的代码
obj
。它不显示任何输出。
提前致谢
我正在尝试迭代我的对象
obj
。但是我的代码没有显示任何输出
一个简单的
for..in
循环怎么样。这就是它的用途。
var obj = {
0: 'Asad',
1: 'Ali',
2: 'Rizwan'
}
console.log(obj);
for (const key in obj) {
console.log('item', key, obj[key]);
}
您可以使用 Object.entries 遍历对象中的所有对。
var obj = {
0: 'Asad',
1: 'Ali',
2: 'Rizwan'
}
for (const [key, value] of Object.entries(obj)) {
console.log(`${key}: ${value}`);
}
编辑:但是,由于您的对象在关键位置(仅索引)不包含任何信息,您还可以使用 Object.values 从对象值生成数组:
var obj = {
0: 'Asad',
1: 'Ali',
2: 'Rizwan'
}
console.log(Object.values(obj)
您可以将具有索引(如键)的对象转换为数组并使用它。
const
object = { 0: 'Jo', 1: 'Ali', 2: 'Jane' },
array = Object.assign([], object);
array.forEach(v => console.log(v));
像
Array#forEach()
这样的数组方法是有意通用的,不仅可以用于数组,还可以用于任何 array-like object。简而言之,类数组具有索引作为键1和length
属性2.
以下对象有索引但没有
length
属性:
var obj = {
0: 'Asad',
1: 'Ali',
2: 'Rizwan'
}
一旦
length
被添加Array#forEach
可以使用Function#call()
来对抗它:
var obj = {
0: 'Asad',
1: 'Ali',
2: 'Rizwan',
length: 3
}
let FOREAC = Array.prototype.forEach;
FOREAC.call(obj, (item) => {
console.log('ITEM LOGS');
console.log(item);
return true;
});
.as-console-wrapper { max-height: 100% !important; }
或
Function#apply()
:
var obj = {
0: 'Asad',
1: 'Ali',
2: 'Rizwan',
length: 3
}
let FOREAC = Array.prototype.forEach;
FOREAC.apply(obj, [(item) => {
console.log('ITEM LOGS');
console.log(item);
return true;
}]);
.as-console-wrapper { max-height: 100% !important; }
1 非负整数
2 也是一个非负整数。它应该显示下一个可用索引。