一起使用 .map(.range(1)) 的目的是什么?范围始终返回 [0]
What is the purpose of using .map(.range(1)) together? range always returns [0]?
关于此输出的简单问题 var newVal = _.range(1); console.log(newVal); [0]
var STARTING_NUMBER = 1;
var _names = ["Lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipisicing", "elit"];
var _bgcolors = ["#FC9D9A", "#F9CDAD", "#C8C8A9"];
var _colors = ["#FE4365", "#83AF9B"]
var _generateItem = function(){
return {
id: Math.random(),
name: _.sample(_names),
bgcolor: _.sample(_bgcolors),
color: _.sample(_colors),
opacity: new Transitionable(0),
transX: new Transitionable(-_width)
}
}
//why is _.range needed? why just make STARTING_NUMBER = [0];
$scope.items = _.map(_.range(STARTING_NUMBER), function(){
return _generateItem();
})
setInterval(function(){
$scope.add();
if(!$scope.$$phase)
$scope.$apply();
}, 1000)
range 函数在传递单个值时将返回一个整数数组:
e.g. _.range(1) returns [0],
_.range(2) returns [0, 1]
代码所做的是在 STARTING_NUMBER 为 1 时调用 generateItem 一次,如果 STARTING_NUMBER 为 2 则调用两次,依此类推,并将 generateItem 的输出添加到数组中。
它可以更简洁地编码为:
$scope.items = _.times(STARTING_NUMBER, generateItem);
这样做是为了保持逻辑通用。代码试图做的是生成一些项目(返回值的函数)并将它们存储在长度STARTING_NUMBER数组中。所以你的假设是正确的,如果STARTING_NUMBER只有 1 个值,即 1 ,但在这里它可以保持动态,即 1 或 2 或 10 ...,并且 $scope.items 数组将是一个生成的等于该长度的数组。
这是一个使用更改值的演示,STARTING_NUMBER = 10(依赖项已注释掉)
演示 : http://jsfiddle.net/m02h0n3g/1/
var $scope = {};
var STARTING_NUMBER = 10;
var _names = ["Lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipisicing", "elit"];
var _bgcolors = ["#FC9D9A", "#F9CDAD", "#C8C8A9"];
var _colors = ["#FE4365", "#83AF9B"]
var _generateItem = function(){
return {
id: Math.random(),
name: _.sample(_names),
bgcolor: _.sample(_bgcolors),
color: _.sample(_colors),
// opacity: new Transitionable(0),
// transX: new Transitionable(-_width)
}
}
//why is _.range needed? why just make STARTING_NUMBER = [0];
$scope.items = _.map(_.range(STARTING_NUMBER), function(){
return _generateItem();
})
console.log($scope.items);
相关文章:
- 如何将闭包内的值返回到外部范围
- 范围变量返回长度错误
- 如何在 Google 应用脚本中 sendEmail 函数的范围内的唯一非空白列中返回值
- 返回Javascript中给定正则表达式的文本范围数组
- Angular$http返回数据,但不返回'不适用于范围
- d3范围/域返回负值
- 在全局范围内执行文件,而不是返回导出的对象
- 我从闭包返回的函数在外部范围内是否可用
- 我的弹性查询中出错 - 范围返回错误的请求
- 从显示为文本的范围中返回最小和最大数字
- 努力将结果从工厂返回到范围
- 在 Angular JS 中使用服务无法返回范围值
- 如何让此函数从范围中添加或减去并返回它
- 主干.js Model.get() 返回 undefined, 范围使用 coffeescript + coffee t
- Angular js 指令控制器访问范围属性,但返回未定义
- AngularJS 指令范围和$compile - 返回空白的变量
- JavaScript 访问 Angular 范围返回“未定义” - 异步问题
- 角度指令 - 范围返回 0 而不是值
- JavaScript变量范围返回“;未定义”;
- Javascript变量范围返回Undefined