作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须在模板“from”和“to”中使用变量来循环选择标记中的数据数组。
我想将“from”、“to”以及之间的值推送到另一个数组。
就像数组是这样的
[1,2,3,4,5,6,7,8,9,0]
如果用户在“发件人”字段中选择“2”,在“收件人”字段中选择“6”,我想推送“2”和“6”以及之间的数据,因此结果将是:
[2,3,4,5,6]
我尝试过这个
result : [],
time : Ember.computed('from', 'to', function() {
this.get('formData.time').forEach(time => {
// formData.time is a service from which i'm getting the array
if (time == this.get('from')) this.get('result').push(time)
this.get('result').push(time)
if (time == this.get('to')) this.get('result').push(time)
})
return this.get('result')
})
但它会推送所有数组,我知道这是我正在做的错误方法但我找不到正确的方法。
最佳答案
我知道已经有一个可接受的答案,但是,没有真正的理由使用循环进行此类处理。 Ember 原型(prototype)化了 slice 方法,该方法从给定的开始和结束索引中提取数组的子部分。您可以使用 MDN 进行引用。下面是如何使用切片方法的示例。
MDN:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
result : [],
time : Ember.computed('from', 'to', function() {
var { from, to } = this.getProperties(['from', 'to']);
var fromIndex = this.get('formData.time').indexOf(from);
var toIndex = this.get('formData.time').indexOf(to);
var data = this.get('formData.time').slice(fromIndex, toIndex + 1);
return this.get('result').concat(data);
})
关于javascript - Ember 将范围推送到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50271756/
我是一名优秀的程序员,十分优秀!