<!--your preparation HTML code goes here-->
/*your preparation JavaScript code goes here
To execute async code during the script preparation, wrap it as function globalMeasureThatScriptPrepareFunction, example:*/
async function globalMeasureThatScriptPrepareFunction() {
// This function is optional, feel free to remove it.
// await someThing();
}
var domain_list = [
{ domain: 'sport.es', fd: true, fdm: true },
{ domain: 'elperiodico.com', fd: true, fdm: true },
{ domain: 'lne.es', fd: true, fdm: true },
{ domain: 'levante-emv.com', fd: true, fdm: true },
{ domain: 'farodevigo.es', fd: true },
{ domain: 'informacion.es', fd: true, fdm: true },
{ domain: 'epe.es', fd: true, fdm: true },
{ domain: 'superdeporte.es', fd: true, fdm: true },
{ domain: 'diaridegirona.cat', fd: true, fdm: true },
{ domain: 'diariocordoba.com', fd: true, fdm: true },
{ domain: 'diariodeibiza.com', fd: true, fdm: true },
{ domain: 'diariodeibiza.es', fd: true, fdm: true },
{ domain: 'diariodemallorca.es', fd: true, fdm: true },
{ domain: 'elcorreogallego.es', fd: true, fdm: true },
{ domain: 'elcorreoweb.es', fd: true, fdm: true },
{ domain: 'eldia.es', fd: true, fdm: true },
{ domain: 'elperiodico.cat', fd: true },
{ domain: 'elperiodicodearagon.com', fd: true, fdm: true },
{ domain: 'elperiodicoextremadura.com', fd: true, fdm: true },
{ domain: 'elperiodicomediterraneo.com', fd: true, fdm: true },
{ domain: 'emporda.info', fd: true, fdm: true },
{ domain: 'lacronicabadajoz.com', fd: true, fdm: true },
{ domain: 'laopinioncoruna.es', fd: true, fdm: true },
{ domain: 'laopiniondemalaga.es', fd: true, fdm: true },
{ domain: 'laopiniondemurcia.es', fd: true, fdm: true },
{ domain: 'laopiniondezamora.es', fd: true, fdm: true },
{ domain: 'laprovincia.es', fd: true, fdm: true },
{ domain: 'mallorcazeitung.es', fd: true, fdm: true },
{ domain: 'regio7.cat', fd: true, fdm: true },
{ domain: 'stilo.es', fd: true },
{ domain: 'codigonuevo.com', fd: true, fdm: true },
{ domain: 'adoptaunpelut.cat' },
{ domain: 'albaeditorial.es' },
{ domain: 'albergaria.es' },
{ domain: 'becontent.es' },
{ domain: 'blaucopamerica.es' },
{ domain: 'businessdemallorca.es' },
{ domain: 'campusfcbarcelona.com' },
{ domain: 'canwerun.com' },
{ domain: 'carreraspopularesasturias.com' },
{ domain: 'casagourmet.es' },
{ domain: 'cazadoresofertas.com' },
{ domain: 'climbingmadrid.es' },
{ domain: 'club-viajar.es' },
{ domain: 'clubdiariodemallorca.es' },
{ domain: 'compramejor.es' },
{ domain: 'compramejor.us' },
{ domain: 'compramejormx.com' },
{ domain: 'correodemallorca.ru' },
{ domain: 'costabravagirona.cat' },
{ domain: 'diarioinformacion.com' },
{ domain: 'elperiodicodelazulejo.es' },
{ domain: 'elturismoquequeremos.com' },
{ domain: 'esquicatalunya.com' },
{ domain: 'eventosprensaiberica.es' },
{ domain: 'ewoman.es' },
{ domain: 'foromediterraneo.com' },
{ domain: 'futuribles.es' },
{ domain: 'galiciaenvinos.es' },
{ domain: 'granretosolidario.es' },
{ domain: 'grupoeldia.com' },
{ domain: 'i-talks.com' },
{ domain: 'institutomoll.com' },
{ domain: 'mallorcaliv.se' },
{ domain: 'mejorpueblo.es' },
{ domain: 'millorpoble.cat' },
{ domain: 'orgulloseescribeconh.com' },
{ domain: 'premiosempresaysostenibilidad.com' },
{ domain: 'premiosin4.es' },
{ domain: 'premiosinnobankia.com' },
{ domain: 'premiosprincesa.es' },
{ domain: 'prensaiberica.es' },
{ domain: 'prensaiberica360.es' },
{ domain: 'pressreader.com' },
{ domain: 'productosdenuestratierra.com' },
{ domain: 'recursosenlared.es' },
{ domain: 'restaurantesdemallorca.com' },
{ domain: 'revistahistoriayarte.es' },
{ domain: 'somesportcv.com' },
{ domain: 'sontusderechoscv.com' },
{ domain: 'talentojovencv.com' },
{ domain: 'terramoll.es' },
{ domain: 'tourcityhub.com' },
{ domain: 'tourinmoforum.com' },
{ domain: 'valencia.esmart.com.es' },
{ domain: 'velagalicia.es' },
{ domain: 'zetakiosko.com' },
{ domain: 'woman.es' },
{ domain: 'noticiasdenavarra.com' },
{ domain: 'deia.eus' },
{ domain: 'noticiasdealava.eus' },
{ domain: 'noticiasdegipuzkoa.eus' },
{ domain: 'ondavasca.com' }
];
var page_url_domain = 'sport.es'
// Variables que se calcularán al recorrer la lista solo una vez
var cross_domain = [];
var fd = false;
var fdm = false;
// Recorrer solo una vez la lista de dominios
domain_list.forEach(function(e) {
// Generamos la lista de cross_domain excluyendo el dominio actual
if (page_url_domain !== e.domain) {
cross_domain.push(e.domain);
}
// Verificamos si el dominio actual tiene la propiedad fd
if (e.domain === page_url_domain && e.fd === true) {
fd = true;
}
// Verificamos si algún dominio tiene 'www.' en el nombre y la propiedad fdm
if (('www.' + e.domain === window.location.hostname) && e.fdm === true) {
fdm = true;
}
});
// Convertir el array a string separado por comas
cross_domain = cross_domain.join(',');
var domain_list = [
{ domain: 'sport.es', fd: true, fdm: true },
{ domain: 'elperiodico.com', fd: true, fdm: true },
{ domain: 'lne.es', fd: true, fdm: true },
{ domain: 'levante-emv.com', fd: true, fdm: true },
{ domain: 'farodevigo.es', fd: true },
{ domain: 'informacion.es', fd: true, fdm: true },
{ domain: 'epe.es', fd: true, fdm: true },
{ domain: 'superdeporte.es', fd: true, fdm: true },
{ domain: 'diaridegirona.cat', fd: true, fdm: true },
{ domain: 'diariocordoba.com', fd: true, fdm: true },
{ domain: 'diariodeibiza.com', fd: true, fdm: true },
{ domain: 'diariodeibiza.es', fd: true, fdm: true },
{ domain: 'diariodemallorca.es', fd: true, fdm: true },
{ domain: 'elcorreogallego.es', fd: true, fdm: true },
{ domain: 'elcorreoweb.es', fd: true, fdm: true },
{ domain: 'eldia.es', fd: true, fdm: true },
{ domain: 'elperiodico.cat', fd: true },
{ domain: 'elperiodicodearagon.com', fd: true, fdm: true },
{ domain: 'elperiodicoextremadura.com', fd: true, fdm: true },
{ domain: 'elperiodicomediterraneo.com', fd: true, fdm: true },
{ domain: 'emporda.info', fd: true, fdm: true },
{ domain: 'lacronicabadajoz.com', fd: true, fdm: true },
{ domain: 'laopinioncoruna.es', fd: true, fdm: true },
{ domain: 'laopiniondemalaga.es', fd: true, fdm: true },
{ domain: 'laopiniondemurcia.es', fd: true, fdm: true },
{ domain: 'laopiniondezamora.es', fd: true, fdm: true },
{ domain: 'laprovincia.es', fd: true, fdm: true },
{ domain: 'mallorcazeitung.es', fd: true, fdm: true },
{ domain: 'regio7.cat', fd: true, fdm: true },
{ domain: 'stilo.es', fd: true },
{ domain: 'codigonuevo.com', fd: true, fdm: true },
{ domain: 'adoptaunpelut.cat' },
{ domain: 'albaeditorial.es' },
{ domain: 'albergaria.es' },
{ domain: 'becontent.es' },
{ domain: 'blaucopamerica.es' },
{ domain: 'businessdemallorca.es' },
{ domain: 'campusfcbarcelona.com' },
{ domain: 'canwerun.com' },
{ domain: 'carreraspopularesasturias.com' },
{ domain: 'casagourmet.es' },
{ domain: 'cazadoresofertas.com' },
{ domain: 'climbingmadrid.es' },
{ domain: 'club-viajar.es' },
{ domain: 'clubdiariodemallorca.es' },
{ domain: 'compramejor.es' },
{ domain: 'compramejor.us' },
{ domain: 'compramejormx.com' },
{ domain: 'correodemallorca.ru' },
{ domain: 'costabravagirona.cat' },
{ domain: 'diarioinformacion.com' },
{ domain: 'elperiodicodelazulejo.es' },
{ domain: 'elturismoquequeremos.com' },
{ domain: 'esquicatalunya.com' },
{ domain: 'eventosprensaiberica.es' },
{ domain: 'ewoman.es' },
{ domain: 'foromediterraneo.com' },
{ domain: 'futuribles.es' },
{ domain: 'galiciaenvinos.es' },
{ domain: 'granretosolidario.es' },
{ domain: 'grupoeldia.com' },
{ domain: 'i-talks.com' },
{ domain: 'institutomoll.com' },
{ domain: 'mallorcaliv.se' },
{ domain: 'mejorpueblo.es' },
{ domain: 'millorpoble.cat' },
{ domain: 'orgulloseescribeconh.com' },
{ domain: 'premiosempresaysostenibilidad.com' },
{ domain: 'premiosin4.es' },
{ domain: 'premiosinnobankia.com' },
{ domain: 'premiosprincesa.es' },
{ domain: 'prensaiberica.es' },
{ domain: 'prensaiberica360.es' },
{ domain: 'pressreader.com' },
{ domain: 'productosdenuestratierra.com' },
{ domain: 'recursosenlared.es' },
{ domain: 'restaurantesdemallorca.com' },
{ domain: 'revistahistoriayarte.es' },
{ domain: 'somesportcv.com' },
{ domain: 'sontusderechoscv.com' },
{ domain: 'talentojovencv.com' },
{ domain: 'terramoll.es' },
{ domain: 'tourcityhub.com' },
{ domain: 'tourinmoforum.com' },
{ domain: 'valencia.esmart.com.es' },
{ domain: 'velagalicia.es' },
{ domain: 'zetakiosko.com' },
{ domain: 'woman.es' },
{ domain: 'noticiasdenavarra.com' },
{ domain: 'deia.eus' },
{ domain: 'noticiasdealava.eus' },
{ domain: 'noticiasdegipuzkoa.eus' },
{ domain: 'ondavasca.com' }
];
var page_url_domain = 'sport.es'
// Generar la lista de cross_domain excluyendo el dominio actual
var cross_domain = domain_list
.map(function(e) {
return e.domain; // Aplanamos solo los dominios
})
.filter(function(domain) {
return page_url_domain !== domain; // Excluir el dominio actual
})
.join(','); // Unimos los dominios restantes con coma
// Determinar si el dominio actual está en la lista y tiene fd
var fd = domain_list
.some(function(e) {
return e.domain === page_url_domain && e.fd === true;
});
// Determinar si algún dominio en domain_list tiene fdm cuando es "www"
var fdm = domain_list
.some(function(e) {
return ('www.' + e.domain === window.location.hostname) && e.fdm === true;
});
var domain_list = [
{ domain: 'sport.es', fd: true, fdm: true },
{ domain: 'elperiodico.com', fd: true, fdm: true },
{ domain: 'lne.es', fd: true, fdm: true },
{ domain: 'levante-emv.com', fd: true, fdm: true },
{ domain: 'farodevigo.es', fd: true },
{ domain: 'informacion.es', fd: true, fdm: true },
{ domain: 'epe.es', fd: true, fdm: true },
{ domain: 'superdeporte.es', fd: true, fdm: true },
{ domain: 'diaridegirona.cat', fd: true, fdm: true },
{ domain: 'diariocordoba.com', fd: true, fdm: true },
{ domain: 'diariodeibiza.com', fd: true, fdm: true },
{ domain: 'diariodeibiza.es', fd: true, fdm: true },
{ domain: 'diariodemallorca.es', fd: true, fdm: true },
{ domain: 'elcorreogallego.es', fd: true, fdm: true },
{ domain: 'elcorreoweb.es', fd: true, fdm: true },
{ domain: 'eldia.es', fd: true, fdm: true },
{ domain: 'elperiodico.cat', fd: true },
{ domain: 'elperiodicodearagon.com', fd: true, fdm: true },
{ domain: 'elperiodicoextremadura.com', fd: true, fdm: true },
{ domain: 'elperiodicomediterraneo.com', fd: true, fdm: true },
{ domain: 'emporda.info', fd: true, fdm: true },
{ domain: 'lacronicabadajoz.com', fd: true, fdm: true },
{ domain: 'laopinioncoruna.es', fd: true, fdm: true },
{ domain: 'laopiniondemalaga.es', fd: true, fdm: true },
{ domain: 'laopiniondemurcia.es', fd: true, fdm: true },
{ domain: 'laopiniondezamora.es', fd: true, fdm: true },
{ domain: 'laprovincia.es', fd: true, fdm: true },
{ domain: 'mallorcazeitung.es', fd: true, fdm: true },
{ domain: 'regio7.cat', fd: true, fdm: true },
{ domain: 'stilo.es', fd: true },
{ domain: 'codigonuevo.com', fd: true, fdm: true },
{ domain: 'adoptaunpelut.cat' },
{ domain: 'albaeditorial.es' },
{ domain: 'albergaria.es' },
{ domain: 'becontent.es' },
{ domain: 'blaucopamerica.es' },
{ domain: 'businessdemallorca.es' },
{ domain: 'campusfcbarcelona.com' },
{ domain: 'canwerun.com' },
{ domain: 'carreraspopularesasturias.com' },
{ domain: 'casagourmet.es' },
{ domain: 'cazadoresofertas.com' },
{ domain: 'climbingmadrid.es' },
{ domain: 'club-viajar.es' },
{ domain: 'clubdiariodemallorca.es' },
{ domain: 'compramejor.es' },
{ domain: 'compramejor.us' },
{ domain: 'compramejormx.com' },
{ domain: 'correodemallorca.ru' },
{ domain: 'costabravagirona.cat' },
{ domain: 'diarioinformacion.com' },
{ domain: 'elperiodicodelazulejo.es' },
{ domain: 'elturismoquequeremos.com' },
{ domain: 'esquicatalunya.com' },
{ domain: 'eventosprensaiberica.es' },
{ domain: 'ewoman.es' },
{ domain: 'foromediterraneo.com' },
{ domain: 'futuribles.es' },
{ domain: 'galiciaenvinos.es' },
{ domain: 'granretosolidario.es' },
{ domain: 'grupoeldia.com' },
{ domain: 'i-talks.com' },
{ domain: 'institutomoll.com' },
{ domain: 'mallorcaliv.se' },
{ domain: 'mejorpueblo.es' },
{ domain: 'millorpoble.cat' },
{ domain: 'orgulloseescribeconh.com' },
{ domain: 'premiosempresaysostenibilidad.com' },
{ domain: 'premiosin4.es' },
{ domain: 'premiosinnobankia.com' },
{ domain: 'premiosprincesa.es' },
{ domain: 'prensaiberica.es' },
{ domain: 'prensaiberica360.es' },
{ domain: 'pressreader.com' },
{ domain: 'productosdenuestratierra.com' },
{ domain: 'recursosenlared.es' },
{ domain: 'restaurantesdemallorca.com' },
{ domain: 'revistahistoriayarte.es' },
{ domain: 'somesportcv.com' },
{ domain: 'sontusderechoscv.com' },
{ domain: 'talentojovencv.com' },
{ domain: 'terramoll.es' },
{ domain: 'tourcityhub.com' },
{ domain: 'tourinmoforum.com' },
{ domain: 'valencia.esmart.com.es' },
{ domain: 'velagalicia.es' },
{ domain: 'zetakiosko.com' },
{ domain: 'woman.es' },
{ domain: 'noticiasdenavarra.com' },
{ domain: 'deia.eus' },
{ domain: 'noticiasdealava.eus' },
{ domain: 'noticiasdegipuzkoa.eus' },
{ domain: 'ondavasca.com' }
];
var page_url_domain = 'sport.es'
// Variables para almacenar resultados
var cross_domain = [];
var fd = false;
var fdm = false;
// Un solo bucle para múltiples propósitos
for (var i = 0; i < domain_list.length; i++) {
var currentDomain = domain_list[i];
// Construcción de cross_domain
if (currentDomain.domain !== page_url_domain) {
cross_domain.push(currentDomain.domain);
}
// Verificación de fd
if (!fd && currentDomain.domain === page_url_domain && currentDomain.fd === true) {
fd = true;
}
// Verificación de fdm
if (!fdm && ('www.' + currentDomain.domain) === window.location.hostname && currentDomain.fdm === true) {
fdm = true;
}
}
// Convertir el array a string separado por comas
cross_domain = cross_domain.join(',');
var domain_list = [
'adoptaunpelut.cat',
'albaeditorial.es',
'albergaria.es',
'becontent.es',
'blaucopamerica.es',
'businessdemallorca.es',
'campusfcbarcelona.com',
'canwerun.com',
'carreraspopularesasturias.com',
'casagourmet.es',
'cazadoresofertas.com',
'climbingmadrid.es',
'club-viajar.es',
'clubdiariodemallorca.es',
'codigonuevo.com',
'compramejor.es',
'compramejor.us',
'compramejormx.com',
'correodemallorca.ru',
'costabravagirona.cat',
'diaridegirona.cat',
'diariocordoba.com',
'diariodeibiza.com',
'diariodeibiza.es',
'diariodemallorca.es',
'diarioinformacion.com',
'elcorreogallego.es',
'elcorreoweb.es',
'eldia.es',
'elperiodico.cat',
'elperiodico.com',
'elperiodicodearagon.com',
'elperiodicodelazulejo.es',
'elperiodicoextremadura.com',
'elperiodicomediterraneo.com',
'elturismoquequeremos.com',
'emporda.info',
'epe.es',
'esquicatalunya.com',
'eventosprensaiberica.es',
'ewoman.es',
'farodevigo.es',
'foromediterraneo.com',
'futuribles.es',
'galiciaenvinos.es',
'granretosolidario.es',
'grupoeldia.com',
'i-talks.com',
'informacion.es',
'institutomoll.com',
'lacronicabadajoz.com',
'laopinioncoruna.es',
'laopiniondemalaga.es',
'laopiniondemurcia.es',
'laopiniondezamora.es',
'laprovincia.es',
'levante-emv.com',
'lne.es',
'mallorcaliv.se',
'mallorcazeitung.es',
'mejorpueblo.es',
'millorpoble.cat',
'orgulloseescribeconh.com',
'premiosempresaysostenibilidad.com',
'premiosin4.es',
'premiosinnobankia.com',
'premiosprincesa.es',
'prensaiberica.es',
'prensaiberica360.es',
'pressreader.com',
'productosdenuestratierra.com',
'recursosenlared.es',
'regio7.cat',
'restaurantesdemallorca.com',
'revistahistoriayarte.es',
'somesportcv.com',
'sontusderechoscv.com',
'sport.es',
'stilo.es',
'superdeporte.es',
'talentojovencv.com',
'terramoll.es',
'tourcityhub.com',
'tourinmoforum.com',
'valencia.esmart.com.es',
'velagalicia.es',
'zetakiosko.com',
'woman.es',
'noticiasdenavarra.com',
'deia.eus',
'noticiasdealava.eus',
'noticiasdegipuzkoa.eus',
'ondavasca.com'
];
var cross_domain = domain_list.filter(function(e){
if(document.location.hostname.indexOf(e)===-1) return e;
}).join(',');
--enable-precise-memory-info
flag.
Test case name | Result |
---|---|
forEach | |
some | |
for | |
filter |
Test name | Executions per second |
---|---|
forEach | 44403.2 Ops/sec |
some | 45173.4 Ops/sec |
for | 45398.5 Ops/sec |
filter | 58441.7 Ops/sec |
The benchmark results defined in the provided JSON focus on measuring the performance of two JavaScript constructs—forEach
and some
—when processing a list of domains. Each construct serves different purposes in JavaScript array manipulation, and the comparisons are designed to evaluate their efficiency in a specific context.
Benchmark for forEach
:
forEach
method executes a provided function once for each array element. In this case, it iterates through the domain_list
, generating a filtered list (cross_domain
) of unique domains while checking if certain properties (fd
and fdm
) are present.forEach
method is used to loop through each domain object and perform checks and mutations directly during the iteration.Benchmark for some
:
some
method tests whether at least one element in the array passes the test implemented by the provided function. This benchmark uses some
to check two conditions: if the page_url_domain
has a specific fd
status and if any domain in the list uses the fdm
property when corresponding to a www
subdomain.map
method to initially extract only the domains and then applies filter
to exclude the current domain before joining them into a string. Additionally, it uses two some
calls to determine the presence of fd
and fdm
.The benchmark results report the number of executions per second for both implementations. The forEach
method yielded approximately 47,464 executions per second, while the some
method had around 45,418 executions per second. The difference suggests that, within this specific use case and browser environment (Chrome 131), the forEach
method performed slightly better.
forEach
:some
:When evaluating the performance between array methods in JavaScript, the choice between methods isn't solely about speed. The readability of the code or the specific requirements can greatly influence which method to use. In production code, profiling in the context of real data can lead to better choices tailored to specific use cases.
Other methods that could be applied to similar tasks include:
for
loop: A traditional approach which allows full control of the iteration process, including skipping items or breaking early.reduce
: Useful for aggregation scenarios where a single output is needed from the multiple iterations, albeit with potentially increased complexity.filter
: Though primarily for filtering items rather than performing operations based on conditions, it could lead to cleaner code in scenarios where only conditional inclusion in a list is required.In conclusion, while both forEach
and some
have their place in JavaScript and resulted in competitive performance in this benchmark, the optimal choice depends on the specific needs of the application, developer preference for readability, and the particular data set being processed.