javascript - 如何在Javascript中的map函数内的indexOf中使用属性变量

标签 javascript

我有一个功能如下:

getValue(param) {
    var result = [];
    result = this.state.ObjectsData.map(x => {
        if (result.indexOf(x.param) === -1) {
            result.push(x.param)
        }
    });
}

//ObjectsData is array of objects

ObjectsData = [
    {tag: 23, name: vicky, gender: m},
    {tag: 13, name: sam, gender: m},
    {tag: 23, name: raj, gender: m}
]

//x can be any object like below:
x = {tag: 23, name: vicky, gender: m}

param 是像标签一样的属性名称

即使参数在 map 之前和 map 之后有一些值,我在下面的行中得到的参数为未定义 if (result.indexOf(x.param) === -1) { }

我正在尝试为任何属性找到唯一值,例如: 对于标签:23, 13。是的,x.tag 或 x.name 或 x.gender 工作正常,但我想让 propertyName 动态

最佳答案

您想要动态检查名称为param的值的键,因此而不是

if (result.indexOf(x.param) === -1) {
    result.push(x.param)
}

它会检查您想要的名为 param 的 key

if (result.indexOf(x[param]) === -1) {
    result.push(x[param])
}

它检查具有 param 值名称的键

关于javascript - 如何在Javascript中的map函数内的indexOf中使用属性变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49143214/

相关文章:

Evernote 的 Javascript API?

javascript - 使用 kineticjs 在 Canvas 上创建覆盖并删除部分覆盖

javascript - 在本地存储中存储复选框值

javascript - fetch() 后出现 404 错误

javascript - Jquery 检查元素中的多个类(全部必须存在)

javascript - 如何从父对象构造函数访问对象

javascript - 正则表达式从 URL 中删除 jsessionid

javascript - 页面级自定义变量未显示在 Google Analytics 中

javascript - 从 Javascript 数组中删除重复值,但仅限重复超过 5 次的值

javascript - 如何修复 "Can' t 对未安装的组件执行 React 状态更新。React Native 中的错误