我有一个功能如下:
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/