[英]Swapping an Objects value, with a value from another object. *Javascript*
[英]Return the list of value of matching key from other object. (Intersection of two objects)
const validValuesByDataType: any = {
[DataTypes.STRING]: [
ValueType.CALL,
ValueType.PUT,
],
...
}
const values: any = {
[ ValueType.CALL ]: {value: 'call', label: 'CALL'},
[ ValueType.PUT ]: {value: 'put', label: 'PUT'},
...
}
我想根據數據類型獲取有效值。 哪個是['call', 'put']
const valueMap = validValuesByDataType[fieldType];
valueMap.map((o: any) => values[o].value); => I got "call" and "put" printing.
如何獲取值的數組? 我想要某種形式的東西。
[ ...values.concat[type] ]
如果您有任何其他更好的結構,任何幫助將不勝感激。
另外,我在定義每個對象的類型時遇到了麻煩。 請隨意添加任何評論!
如果您使用的是足夠新的 javascript 版本,那么Array.prototype.flatMap會使您的值映射變得容易。
function test(fieldType: DataTypes) {
const valueMap = validValuesByDataType[fieldType];
valueMap.flatMap(o => values[o].value);
}
ValueType
和DataType
好像是枚舉,可以作為一個類型使用。 打字稿類型Record
描述了一個對象,其中所有鍵都是一種類型,所有值都是另一種類型。 這就是我們將用於查找對象的內容。
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'];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.