用不同的键创建对象

时间:2018-10-25 10:11:54

标签: javascript angular typescript

我想使用循环创建与此对象类似的对象,其中我有单独的国家/地区代码数组和另一个经纬度数组 有没有办法在打字稿中实现这一点,

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

3 个答案:

答案 0 :(得分:1)

假设您的数组具有对应的索引,那么您可以使用此示例代码,

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];
})

答案 1 :(得分:0)

假设两个数组都通过其索引正确映射,则可以尝试:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    guard let data = self.notificationsResponse?.data else { return 0 }
    return data.count
}

其中坐标数组包含纬度和经度对象的数组,而国家数组包含国家/地区字符串。

答案 2 :(得分:0)

这是创建所需对象的小例子。

CodeSandbox-project

基本上,您遍历另一个数组,并引用另一个数组的索引。使用obj[key],您可以创建以变量作为键的对象。

仅在TypeScript中进行一些有关实现此目的的讨论。 TypeScript基本上只扩展了现有的EcmaScript语法和类型,因此可以按预期在vanillaJS或TypeScript中使用。如果您输入了变量,则可以从TypeScript中获得好处。

例如

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

因此,现在您的IDE可以告诉您,您期望country变量仅包含字符串。