从对象中获取特定数据

斯凯博尼韦尔

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

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

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"
}

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

import { AVATARS } from './arrays'
import { STATS } from './arrays'

//returns data based on array position(num)
export function getAvatar(num) {
    return AVATARS['avatar' + num];
}

export function getStats(num) {
    return STATS['stats' + num];
}

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

export var Characters = [
    {
        id: 1,
        Name: "Abe",
        HitPointValue: "124",
        StrengthValue: "12",
        IntelligenceValue: "14",
        WisdomValue: "16",
        DexterityValue: "12",
        ConstitutionValue: "10",
        CharismaValue: "17",
        Avatar: require('./images/avatar_7.jpg')
    },
    {
        id: 2,
        Name: "Jake",
        HitPointValue: "141",
        StrengthValue: "21",
        IntelligenceValue: "6",
        WisdomValue: "5",
        DexterityValue: "8",
        ConstitutionValue: "20",
        CharismaValue: "10",
        Avatar: require('./images/avatar_2.jpg')
    }
]

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

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

谢谢!

舒巴姆·哈特里

您可以修改您的功能以接受 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;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章