如何识别 for.in 循环中的第一次迭代
How to identify the first iteration in a for..in loop
我们有这样的循环:
for (var prop in obj) {
if (obj.hasOwnProperty(prop) {
// Here need operation only for first iteration (1)
// Other operations
}
}
我们如何识别 (1) 中的第一次迭代?
你可以
用于每个
array.forEach((element,index) => {
if(index==0){
// first element
}else{
// not first element
}
});
如果
可以,请将其移出循环:
do_one_time_thing();
for (var prop in obj) {
if (obj.hasOwnProperty(prop)) {
// Other operations
}
}
否则,设置一个标志,并在第一次迭代后降低它:
var first_iteration = true;
for (var prop in obj) {
if (obj.hasOwnProperty(prop)) {
if (first_iteration) {
do_one_time_thing();
first_iteration = false;
}
// Other operations
}
}
由于没有循环计数器,因此您需要自己跟踪:
var first = true;
for (var prop in obj) {
if (obj.hasOwnProperty(prop) {
if (first) {
first = false;
// Here need operation only for first iteration (1)
}
// Other operations
}
}
假设你不关心第一项是什么,那么你可以将Object.keys()
与.forEach()
一起使用以避免使用标志。
有了这个,你也不需要使用 .hasOwnProperty()
,因为Object.keys()
为您处理。
Object.keys(obj).forEach(function(key, i) {
if (i === 0) {
console.log("first", obj[key]);
}
console.log(obj[key]);
});
属性不保证以可预测的顺序列出(如其他人所说)。
因此,您可以使用 Object.keys 将对象属性作为数组获取,对该数组进行排序并获取第一个元素:
var firstProperty = Object.keys(obj).sort()[0];
// firstValue = obj[firstProperty];
相关文章:
- 循环中的切换脚本只适用于第一次迭代
- 执行在外循环的第一次迭代后停止
- JQuerywrap()函数只在第一次循环时正确地将链接包装在图像周围
- 对于多选中的循环,第一次不调用 JavaScript/jQuery
- Jquery 循环在第一次加载时未正确加载样式
- 不读取 while 循环中表单元素第一次迭代 ASP.NET
- 如何识别 for.in 循环中的第一次迭代
- 为什么Array中的第一个图像没有't第一次循环
- JS不会循环,在第一次循环后停止
- 循环通过函数会导致错误,并在第一次更改时失败
- for 循环仅在第一次迭代时执行
- for循环在第一次迭代时停止
- For循环只在第一次更改
- 谷歌地图标记循环只显示第一次迭代
- Javascript“for"循环在第一次执行时没有完全执行
- 循环的Javascript似乎在第一次迭代后退出或陷入困境
- 第一次使用AJAX时,JSON通过AJAX循环处理多个页面上的数据
- Javascript 内部循环在第一次出现时停止外部循环
- Javascript for循环在第一次迭代后停止
- 我有一个onClick angularjs函数有一个for循环,在第一次点击不工作