Javascript 通过对象属性递增?
是否可以通过对象属性进行增量而不是循环。我知道对象不能保证有序,但我想通过任何方式增加它们 例如,对于阵列,可以执行以下操作:Javascript 通过对象属性递增?,javascript,Javascript,是否可以通过对象属性进行增量而不是循环。我知道对象不能保证有序,但我想通过任何方式增加它们 例如,对于阵列,可以执行以下操作: arr[index++]; 但这不适用于对象: obj[key++]; 因为我不认为++操作符是为在键上使用而定义的 我不想构建一个复杂的对象结构来存储带有键的索引。我想用自己的方式来做 我很清楚for in结构,但我希望根据需要递增,而不是循环。在最近的浏览器中,您可以使用数组: 详细示例: var keys = Object.keys(o); for (var
arr[index++];
但这不适用于对象:
obj[key++];
因为我不认为++操作符是为在键上使用而定义的
我不想构建一个复杂的对象结构来存储带有键的索引。我想用自己的方式来做
我很清楚for in结构,但我希望根据需要递增,而不是循环。在最近的浏览器中,您可以使用数组: 详细示例:
var keys = Object.keys(o);
for (var i=0; i<keys.length; i++) {
var key = keys[i];
console.log(key, o[key]);
}
如果不想迭代继承的属性,请使用:
在最近的浏览器中,您可以使用阵列: 详细示例:
var keys = Object.keys(o);
for (var i=0; i<keys.length; i++) {
var key = keys[i];
console.log(key, o[key]);
}
如果不想迭代继承的属性,请使用:
该函数适用于任何数字:它将数字增加1
如果对象的属性是数字,您当然可以使用++对其进行迭代:
var obj = { 1: "foo", 2: "bar", 3: "baz" };
var i = 1;
console.log( obj[i++] );
console.log( obj[i++] );
console.log( obj[i++] );
当然,这样做的一个问题是,一般来说,无法保证对象的属性(即使是数字)必须是连续的数字
现在,戴斯特罗伊已经很好地回答了实际问题,所以我不会在这里重复他的回答。我只是想添加这一点来强调一个事实,即询问++运算符是否定义用于键是没有意义的:++运算符不知道或不关心它所操作的值是数组键还是对象属性名或属性名。它所关心的只是它是否是一个数字,或者是否可以有意义地解释为一个数字。它对任何数字都有效:它将数字增加一
如果对象的属性是数字,您当然可以使用++对其进行迭代:
var obj = { 1: "foo", 2: "bar", 3: "baz" };
var i = 1;
console.log( obj[i++] );
console.log( obj[i++] );
console.log( obj[i++] );
当然,这样做的一个问题是,一般来说,无法保证对象的属性(即使是数字)必须是连续的数字
现在,戴斯特罗伊已经很好地回答了实际问题,所以我不会在这里重复他的回答。我只是想添加这一点来强调一个事实,即询问++运算符是否定义用于键是没有意义的:++运算符不知道或不关心它所操作的值是数组键还是对象属性名或属性名。它所关心的只是它是否是一个数字,或者是否可以有意义地解释为一个数字。你期望什么样的输入/输出?是什么让你想到obj[key++];会有用吗?!你期望什么样的输入/输出?是什么让你想到obj[key++];会有用吗?!
var obj = { 1: "foo", 2: "bar", 3: "baz" };
var i = 1;
console.log( obj[i++] );
console.log( obj[i++] );
console.log( obj[i++] );