Javascript 从其他对象返回匹配键的值列表。(两个对象的交点)

Javascript 从其他对象返回匹配键的值列表。(两个对象的交点),javascript,typescript,Javascript,Typescript,我希望根据数据类型获取有效值。这是['call','put'] const validValuesByDataType: any = { [DataTypes.STRING]: [ ValueType.CALL, ValueType.PUT, ], ... } const values: any = { [ ValueType.CALL ]: {value: 'call', label: 'CALL'}, [ Value

我希望根据数据类型获取有效值。这是
['call','put']

const validValuesByDataType: any = {
    [DataTypes.STRING]: [
        ValueType.CALL,
        ValueType.PUT,
    ],
    ...
}

const values: any = {
    [ ValueType.CALL ]: {value: 'call', label: 'CALL'}, 
    [ ValueType.PUT ]: {value: 'put', label: 'PUT'},
    ...
}

如何获取值的值数组?我想要一些这样的形式

const valueMap = validValuesByDataType[fieldType];
valueMap.map((o: any) => values[o].value); => I got "call" and "put" printing.
如果您有其他更好的结构,我们将非常感谢您的帮助


另外,我很难定义每个对象的类型。请随意添加任何评论

如果您使用的是足够新的javascript版本,那么您的值映射就很容易了

ValueType
DataType
似乎是枚举,可以用作类型。typescript类型描述了一个对象,其中所有键都是一种类型,所有值都是另一种类型。这就是我们将用于查找对象的内容

function test(fieldType: DataTypes) {
    const valueMap = validValuesByDataType[fieldType];
    valueMap.flatMap(o => values[o].value);
}

function test(fieldType: DataTypes) {
    const valueMap = validValuesByDataType[fieldType];
    valueMap.flatMap(o => values[o].value);
}
const validValuesByDataType: Record<DataTypes, ValueType[]>

const values: Record<ValueType, {value: stringlabel: string;}>
const valueTypes = ['CALL', 'PUT'] as const;

type ValueType = typeof valueTypes[number]; // evaluates to "CALL" | "PUT"
type ValueType = "CALL" | "PUT";

const valueTypes: ValueType[] = ['CALL', 'PUT'];