练习Javascript循环或优化
我仍在尝试将代码变小。我知道一定有更好的方法用循环写出来。有人能帮我吗练习Javascript循环或优化,javascript,Javascript,我仍在尝试将代码变小。我知道一定有更好的方法用循环写出来。有人能帮我吗 Template.project.helpers({ cell1: function() { return Session.get('cell1'); }, cell2: function() { return Session.get('cell2'); }, cell3: function() { return Session.get('cell3'); }, cell4
Template.project.helpers({
cell1: function() {
return Session.get('cell1');
},
cell2: function() {
return Session.get('cell2');
},
cell3: function() {
return Session.get('cell3');
},
cell4: function() {
return Session.get('cell4');
},
cell5: function() {
return Session.get('cell5');
},
cell6: function() {
return Session.get('cell6');
},
cell7: function() {
return Session.get('cell7');
},
cell8: function() {
return Session.get('cell8');
},
cell9: function() {
return Session.get('cell9');
}
});
试试这个:
var cells = {};
for (i = 1; i <= 9; i++) {
cells["cell" + i] = function(cell) {
return function() {
Session.get("cell" + cell);
}
}(i);
}
var cells={};
对于(i=1;i我将采用一个函数,因为对象需要一个字符串进行访问,而这正是函数所需要的
function getSession(s) {
Session.get(s);
}
区别在于,对于任何可能的sting,对象都有自己的属性,并且它只存储具有给定属性的调用。只要对象方法中没有其他依赖代码,我就不会在OP的样式中使用它
如果对象应该像过滤器一样工作,只允许使用一些字符串,那么我将采用以下解决方案:
function getSession(s) {
~['cell1', 'cell2', 'cell3', 'cell4', 'cell5'].indexOf(s) && Session.get(s);
}
如果你清楚你想做什么的话,可能有。一个匿名对象,用括号括起来——这些函数都不能被调用。既然代码99%相似,为什么不使用一个普通的方法,即cell:function(index){Session.get('cell'+index);}
问题可能更适合@epascarello CR需要完整的工作代码以供审查和可能的改进。如果不先将其编辑成有用的内容,则会拒绝此代码。此代码实际上是什么?函数调用的参数列表?这很接近,单元格[“cell”+cell]必须是单元格[“cell”+i],谢谢!