从对象获取特定数据

时间:2017-05-23 14:00:25

标签: reactjs react-native

我正在试图弄清楚如何从我创建的对象中获取所需的数据。

我之前将我的应用数据存储在2个数组中,如下所示:

{[Date].[Calendar Year Month].[201705]}

要填充应用页面,我会使用这两个函数来获取数据:

WITH 
  MEMBER [2MonthsPriorUniqueUsers] AS Sum({[Date].[Calendar Year Month].CurrentMember.Lag(2)},[Measures].[App Unique Users Loggedin]) 
  MEMBER [1MonthPriorUniqueUsers] AS Sum({[Date].[Calendar Year Month].CurrentMember.Lag(1)},[Measures].[App Unique Users Loggedin]) 
  MEMBER [1MonthPriorTotalAppLogins] AS Sum({[Date].[Calendar Year Month].CurrentMember.Lag(1)},[Measures].[App Logins])
  MEMBER [Measures].[PercentUniqueIncreaseMoM] AS ([1MonthPriorUniqueUsers] / [2MonthsPriorUniqueUsers])-1,FORMAT_STRING = "Percent" 
SELECT 
   NON EMPTY 
     {[Date].[Calendar Year Month].[201705]}
   *  Nonempty([Project].[Client Name].members,[Measures].[App Logins]) ON 0,
  NON EMPTY 
    {
      [Measures].[PercentUniqueIncreaseMoM]
     ,([1MonthPriorUniqueUsers])
     ,[2MonthsPriorUniqueUsers]
     ,[1MonthPriorTotalAppLogins]
    } ON 1
FROM [MyCube]

我最近决定切换到一个存储所有数据的对象,如下所示:

const AVATARS = {
    avatar1: require('./images/avatar_1.jpg'),
    avatar2: require('./images/avatar_2.jpg')
}

export const STATS = {
    stats1: "\nHP: 124\n" +
            "INT: 23\n" +
            "CHR: 13\n",

    stats2: "\nHP: 423\n" +
            "INT: 24\n" +
            "CHR: 11\n"
}

但是现在我这样做了,我不知道如何获得所需的数据。显然我的旧功能不起作用。有没有办法选择给定页面需要哪些数据?

例如,如果我只需要一个页面的名称和头像,但我可能需要另一个页面的统计数据。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以修改函数以接受id

import {characters} from './arrays';

//returns data based on array position(id)
export function getAvatar(id) {
    var idx = characters.findIndex((val) => val.id == id);

    return characters[idx].Avatar;
}

export function getName(id) {
     var idx = characters.findIndex((val) => val.id == id);
    return characters[idx].Name;
}