のように、ES6機能が(but not only)(少なくともnodejsに)非常に遅いので、私はまだ使用しES5機能があることに注意してください
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';
}
ベンチマーク:
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
試験:
"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 *どうやってみたいですか?あなたの質問は不明です。問題を定義してください。 –
'Object.keys'は配列を返します。あなたはその配列を 'error'へのインデックスとして使用しようとしていますか? –
OT個人:@BhojendraNepalどのような問題がありますか?ダウンレート? 下記のように、今すぐ何がベストプラクティスであるかを知らずにハッキングするだけの問題です。あなたはより建設的なことができますが、批判しdownvoteだけです。それは恥ずかしがり屋で、新人にはうれしくない。 – radosch