Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中检索对象的索引_Javascript - Fatal编程技术网

在javascript中检索对象的索引

在javascript中检索对象的索引,javascript,Javascript,我在变量data中有一个javascript对象,比如: data: Object { aliquota: 23, imponibileLordo: 300, imponibileScontato: "", imposta: 69 } 在另一个函数中,我必须使用如下索引迭代对象: for ( var index = 0; index < data.length; index++ ) { var valueOfIndex = data[index];

我在变量
data
中有一个javascript对象,比如:

data: Object {
   aliquota: 23,
   imponibileLordo: 300,
   imponibileScontato: "",
   imposta: 69
}
在另一个函数中,我必须使用如下索引迭代对象:

for ( var index = 0; index < data.length; index++ ) {
    var valueOfIndex = data[index];
    console.log(valueOfIndex);
}

您可以使用
Object.keys
获取所有键的数组,并通过该数组循环到与每个键对应的console.log值:

var数据={
配额:23,
英文比勒沃:300,
阳痿,
税款:69
};

Object.keys(data.forEach(key=>console.log(data[key]))
要迭代对象,请使用
for..in

var数据={
配额:23,
英文比勒沃:300,
阳痿,
税款:69
}
for(数据中的var索引){
var valueOfIndex=数据[指数];
console.log(valueOfIndex);
}
我必须为循环使用数字索引,因为我根据索引值执行其他操作

然后,您需要重新组织逻辑和代码,以使用数组而不是对象,或者至少以定义的顺序拥有自己的属性名称数组并循环使用。尽管从ES2015开始,对象属性有一个顺序,但这不是您应该使用的顺序,因为它取决于对象的创建方式以及属性的名称(例如,它们看起来是否像数组索引)

通过在对象上使用
object.getOwnPropertyNames
并在返回数组中的字符串中循环,可以按ES2015+顺序循环对象的属性,例如:

Object.getOwnPropertyNames(data).forEach((name, index) => {
    // `name` will be the property name,
    // `index` will be its index in the property order
    // ...
});

…但是,再次强调,依赖那些以任何特定顺序排列的属性不是一个好主意。

属性不是数字!e、 g.
aliquota
aliquota
不是
0
!对象没有数字索引,除非您定义它们,即使这样,也不能保证它们是连续的/没有间隙。“数据”是对象,不是数组。我已经用实际问题和我目前使用的修复方法更新了代码……这没问题,但不符合我的目的。我已经更新了我的代码
Object.getOwnPropertyNames(data).forEach((name, index) => {
    // `name` will be the property name,
    // `index` will be its index in the property order
    // ...
});