gpt4 book ai didi

javascript - Ember 将范围推送到数组

转载 作者:行者123 更新时间:2023-11-28 14:34:17 25 4
gpt4 key购买 nike

我必须在模板“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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com