簡體   English   中英

用不同的鍵創建對象

[英]Creating object with varying keys

我想使用循環創建與此對象類似的對象,其中我有單獨的國家/地區代碼數組,還有另一個緯度和經度數組,可以通過打字稿實現此目的,

var latlong={
            'us': {'latitude':39.528019315435685, 'longitude':-99.1444409552122},
            'fr': {'latitude':46.62065825554313, 'longitude':2.4521888685061306}
    }

假設您的數組具有相應的索引,那么您可以使用此示例代碼,

let country = ['us','fr'];
let lat = ['39.528019315435685','46.62065825554313'];
let long = ['-99.1444409552122','2.4521888685061306'];

let latlong = {};

country.forEach((code,index)=>{
   latlong[code] = {};
   latlong[code]['latitude'] = lat[index];
   latlong[code]['longitude'] = long[index];
})

假設兩個數組都通過其索引正確映射,則可以嘗試:

coordinatesArray.forEach((coordinate, index)=>{
    latlong[countryArray[index]] = coordinate;
});

其中ordinatesArray包含緯度和經度對象的數組,而countryArray包含國家/地區字符串。

這是創建所需對象的小示例。

CodeSandbox項目

基本上,您遍歷其他數組並使用對其他數組的索引引用。 使用obj[key]可以創建以變量為鍵的對象。

只是打開一些關於在TypeScript實現這一點的討論。 TypeScript基本上僅使用類型擴展現有的EcmaScript語法,因此可以按預期在vanillaJS或TypeScript中使用。 使用TypeScript好處是可以輸入變量。

例如。

const country: string[] = ['fr','en']

因此,現在您的IDE可以告訴您,您所期望的country變量僅包含字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM