v1
3/5/2020 by Lamik 3/5/202000
Setup HTML - click to add setup HTML
disable setup JavaScript
Setup JavaScript
// 1000 keys in obj
var obj = {};
for(let i=1; i<=1000; i++) obj['p'+i]='value'+i;
var s='';
delete caserun single casemove downdrag and drop case


ready



for (let key in obj) if (obj.hasOwnProperty(key)) s+=key+'->'+obj[key] + ' ';

delete caserun single casemove upmove downdrag and drop case


ready



for (let key in obj) s+=key+'->'+obj[key] + ' ';
delete caserun single casemove upmove downdrag and drop case


ready



const map = new Map(Object.entries(obj));
for (let [key,value] of map) s+=key+'->'+value + ' ';
delete caserun single casemove upmove downdrag and drop case


ready



let o = { 
  ...obj,
  *[Symbol.iterator]() {
    for (const i of Object.keys(this)) yield [i, this[i]];    
  }
}
for (let [key,value] of o) s+=key+'->'+value + ' ';
delete caserun single casemove upmove downdrag and drop case


ready



let o = { 
  ...obj,
  *[Symbol.iterator]() {yield *Object.keys(this)}
  }
for (let key of o) s+=key+'->'+o[key] + ' ';
delete caserun single casemove upmove downdrag and drop case


ready



for (let key of Object.keys(obj)) s+=key+'->'+obj[key]+' ';
delete caserun single casemove upmove downdrag and drop case


ready



for (let [key, value] of Object.entries(obj)) s+=key+'->'+value+' ';
delete caserun single casemove upmove downdrag and drop case


ready



for (let key of Object.getOwnPropertyNames(obj)) s+=key+'->'+obj[key]+' ';
delete caserun single casemove upmove downdrag and drop case


ready



for (const key of Reflect.ownKeys(obj)) s+=key+'->'+obj[key]+' ';
delete caserun single casemove upmove downdrag and drop case


ready



let keys = Object.keys(obj);
  for(let i = 0; i < keys.length; i++){
  let key = keys[i];
  s+=key+'->'+obj[key]+' ';
}
delete caserun single casemove upmove downdrag and drop case


ready



var keys = Object.keys(obj), len = keys.length, i = 0;
while (i < len) {
  let key = keys[i];
  s+=key+'->'+obj[key]+' ';
  i += 1;
}
delete caserun single casemove upmove downdrag and drop case


ready



Object.keys(obj).forEach(key=> s+=key+'->'+obj[key]+' ' );
delete caserun single casemove upmove downdrag and drop case


ready



Object.entries(obj).forEach(([key, value]) => s+=key+'->'+value+' ');
delete caserun single casemove upmove downdrag and drop case


ready



Object.getOwnPropertyNames(obj).forEach(key => s+=key+'->'+obj[key]+' ');
delete caserun single casemove updrag and drop case


ready



Reflect.ownKeys(obj).forEach(key=> s+=key+'->'+obj[key]+' ' );
Test Case - click to add another test case
Teardown JS - click to add teardown JavaScript
Output (DOM) - click to monitor output (DOM) while test is running
RUN