Javascript 找到并替换价值最佳实践 这方面的最佳实践是什么 什么是最有效的 如何用最少的字符来解决这个问题?(没有丑化的VAR)
我想用土制或洛达斯<代码>包含类可以是未分配的,Javascript 找到并替换价值最佳实践 这方面的最佳实践是什么 什么是最有效的 如何用最少的字符来解决这个问题?(没有丑化的VAR),javascript,lodash,Javascript,Lodash,我想用土制或洛达斯包含类可以是未分配的,是,或否 for (var i = 0; i < self.state.items.length; i++) { var obj = self.state.items[i]; if (_.result(obj, 'student_id') === _.result(row, 'student_id')) { if (_.result(obj, 'inClass') === 'No') { self.state.items[
是
,或否
for (var i = 0; i < self.state.items.length; i++) {
var obj = self.state.items[i];
if (_.result(obj, 'student_id') === _.result(row, 'student_id')) {
if (_.result(obj, 'inClass') === 'No') {
self.state.items[i].inClass = 'Yes';
} else {
self.state.items[i].inClass = 'No';
}
}
}
for(var i=0;i
这是一个不太详细的解决方案,使用\u result()
似乎有些过分:
var items = self.state.items,
len = items.length,
i, obj;
for (i = 0; i < len; i++) {
obj = items[i];
if (obj.student_id === row.student_id) {
obj.inClass = obj.inClass === 'No' ? 'Yes' : 'No';
}
}
var items=self.state.items,
len=项目长度,
i、 obj;
对于(i=0;i
就“最少的角色”而言,这真的不是你应该担心的事情。代码应该是可读的,这是最重要的问题之一(通常)。使用
forEach()
简化
对我来说,任何微小的性能差异都会被外观更干净的代码所抵消,并且只有在大型数据集上才是真正关键的“这方面的最佳实践是什么?”-为了什么?你想解决的问题是什么?您提到使用最少的字符:将if/else替换为三元运算符。
inClass
true
或false
或“Yes”
和“No”
?为什么使用.result
方法而不使用点符号?是或否,您是对的。我的理解是,forEach
的性能远远低于标准的for
loop@KirkStrobeck请看我对此的评论。OP询问了最短的代码路径,然后询问了性能…不确定哪一个需要precedence@KirkStrobeck就性能而言,我相信一个虽然
甚至比更好,但实际上,它没有什么区别forEach
更好。
self.state.items.forEach(function(item){
if (item.student_id === row.student_id) {
item.inClass = item.inClass === 'No' ? 'Yes' : 'No';
}
});