Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将C#字典传递到typescript映射中_Javascript_Angular_Typescript_Asp.net Core_Asp.net Web Api - Fatal编程技术网

Javascript 如何将C#字典传递到typescript映射中

Javascript 如何将C#字典传递到typescript映射中,javascript,angular,typescript,asp.net-core,asp.net-web-api,Javascript,Angular,Typescript,Asp.net Core,Asp.net Web Api,如何将C#字典正确地传递到typescript映射中 [HttpGet("reportsUsage")] public IActionResult GetReportsUsage() { //var reportsUsage = _statService.GetReportsUsage(); IDictionary<int, int> test = new Dictionary<int, int>();

如何将C#字典正确地传递到typescript映射中

[HttpGet("reportsUsage")]
    public IActionResult GetReportsUsage()
    {
        //var reportsUsage = _statService.GetReportsUsage();

        IDictionary<int, int> test = new Dictionary<int, int>();

        test.Add(1, 20);
        test.Add(2, 30);
        test.Add(3, 40);
        test.Add(4, 50);
        test.Add(5, 70);
        test.Add(6, 60);
        test.Add(7, 90);
        test.Add(8, 30);

        return Ok(test);
        //return Ok(reportsUsage );
    }
TypeError:对象不可编辑(无法读取属性符号(Symbol.iterator))


1-如果要使用reportsUsage创建映射,请执行以下操作:

const map = new Map(Object.entries(this.reportsUsage));
console.log(map.get("1")); // prints 20
2-如果您想要仅包含值的数组:

const arrayOfValues = Object.values(this.reportsUsage)
我不知道C#在这里有多重要,除了这样一个事实,即通过连接的是一个JSON对象:

const data: Record<number, number> = 
  { 1: 20, 2: 30, 3: 40, 4: 50, 5: 70, 6: 60, 7: 90, 8: 30 };

如果要将其转换为
映射
,则需要使用键值的适当的可编辑参数(如数组)进行调用。由于JSON对象总是有
string
键,而不是实际的
number
s,如果希望生成的映射是
map
,而不是
map
,则需要自己转换为数字:

看起来不错。

const arrayOfValues = Object.values(this.reportsUsage)
const data: Record<number, number> = 
  { 1: 20, 2: 30, 3: 40, 4: 50, 5: 70, 6: 60, 7: 90, 8: 30 };
this.http.get<Record<number, number>>(...)
const map = new Map(Object.entries(data).map(([k, v]) => [+k, v]));
// const map: Map<number, number>
console.log(map.get(3)?.toFixed(2)) // "40.00"