Beachten Sie, dass ES6 Funktionen sehr langsam (zumindest auf NodeJS) (but not only) sind, so würde ich verwenden noch ES5 Funktionen, wie
var res = '';
for (let i = 0; i < data.errors.length; i++) {
var key = Object.keys(data.errors[i])[0];
res += key + ' ' + data.errors[i][key] + '/n';
}
Benchmark:
question x 189,765 ops/sec ±1.39% (82 runs sampled)
maxx answer x 267,565 ops/sec ±0.98% (80 runs sampled)
for keys x 1,735,444 ops/sec ±0.85% (82 runs sampled)
Fastest is for keys
Der Test:
"use strict";
var Benchmark = require('benchmark');
var suite = new Benchmark.Suite;
suite
.add('map', function() {
let data = {
"errors": [
{
"password": "must min have 5 characters"
},
{
"email": "has invalid format"
}
]
}
let res = data.errors.map(function(error, index) {
let keyName = Object.keys(error)
let str = error[keyName]
return keyName + " " + str ;
});
res = res.join("\n");
})
.add('maxx answer', function() {
let data = {
"errors": [
{
"password": "must min have 5 characters"
},
{
"email": "has invalid format"
}
]
}
data.errors.map(error => Object.keys(error).map(key => `${key} ${error[key]}`)).join('\n');
})
.add('for keys', function() {
let data = {
"errors": [
{
"password": "must min have 5 characters"
},
{
"email": "has invalid format"
}
]
}
var res = '';
for (let i = 0; i < data.errors.length; i++) {
var key = Object.keys(data.errors[i])[0];
res += key + ' ' + data.errors[i][key] + '/n';
}
})
// add listeners
.on('cycle', function(event) {
console.log(String(event.target));
})
.on('complete', function() {
console.log('Fastest is ' + this.filter('fastest').map('name'));
})
// run async
.run({ 'async': true });
* nowdays * wie willst du? Deine Frage ist unklar. Bitte definieren Sie das Problem. –
'Object.keys' gibt ein Array zurück. Sie versuchen, dieses Array als einen Index in "Fehler" zu verwenden? –
OT Personal: @BhojendraNepal welches Problem genau hast du. Verkleinerungsrate? Wie Sie unten lesen können, ist es ein Problem, nur hacken, ohne zu wissen, was beste Praxis jetzt ist. Sie könnten konstruktiver sein, aber nur kritisieren und ablehnen. Das ist peinlich und nicht nett für Neulinge. – radosch