如何基于Ember中的变量获取数组内对象的值?

时间:2018-10-09 12:05:20

标签: javascript ember.js

我正在开发一个嵌套的js应用程序,该应用程序试图从更多原始数据中创建一个干净的json模式。

因此,当我遍历数据时,我想选择像这样嵌套的标签值。

label: data[x]["title"]["values"]["en"]

我想在父级中创建一个指针-指向此数据的指针

parentLabelPointer : "title.values.en"

但是我不能像这样简单地获取这个变量(使用余烬)

label: data[x][this.get("parentLabelPointer")]

如果只是一个级别-这将起作用。 e.b. “ parentLabelPointer:”标题“”

是否有一种干净的方法来提取此数据-不必尝试深入钻取嵌套数组(如["title"]["values"]["en"])中的数据?

这是为了使模块更模块化-如果它可以与不同的数据集和不同的嵌套级别一起使用。


我的例子

  getLabel: function(prefix, pointer){
    var trail = pointer.split(".");

    var label = prefix;
    trail.forEach(function(element) {
      label = label[element];
    });

    return label;
  }

用法

this.getLabel(data[x], this.get('parentLabelPointer'))

data [x]类似于分支的已知级别-但要在原始数据中找到标签-

parentLabelPointer-类似于“ title.values.en”

1 个答案:

答案 0 :(得分:1)

我认为您想要这样的东西:

# Uncomment this line to define a global platform for your project
platform :ios, '10.0'
# Uncomment this line if you're using Swift
use_frameworks!

project 'PROJECT'
target 'PROJECT' do

pod 'Firebase/Core'
pod 'Firebase/Analytics'
pod 'Firebase/Messaging'
pod 'MWPhotoBrowser', '~> 1.4'
pod 'AKNumericFormatter', '~> 0.0'
pod 'GoogleMaps', '~> 1.10'
pod 'GoogleAnalytics', '~> 3.13'
pod 'Fabric'
pod 'Crashlytics'
pod 'LMGeocoder', '~> 1.0'
pod 'AFNetworking', '~> 3.0'
pod 'JSONModel'
end

所有人都说,目前还不清楚import { computed } from '@ember/object'; ... label:computed('parentLabelPointer', 'data.[]', 'x', function(){ let x = this.get('x'); let data = this.get('data'); let parentLabelPointer = this.get('parentLabelPointer'); return data[x].get(parentLabelPointer); } x等是什么,或者它们应该如何工作等。这确实像XY problem