Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 typescript-对象属性应为整数,但是否为字符串?_Javascript_Arrays_Typescript_Object_Types - Fatal编程技术网

Javascript typescript-对象属性应为整数,但是否为字符串?

Javascript typescript-对象属性应为整数,但是否为字符串?,javascript,arrays,typescript,object,types,Javascript,Arrays,Typescript,Object,Types,我需要遍历对象nodeIDs,并找到特定值的关键索引 private getNodeIndexByID(nodeIDs, id) { for (const [key, value] of Object.entries(nodeIDs)) { if (id === value) { return key; } } } 返回的键是数字键 .. 现在,我构建了一个新对象,其中保存了关键索引 const index_source = this.getN

我需要遍历对象
nodeIDs
,并找到特定值的关键索引

 private getNodeIndexByID(nodeIDs, id) {
   for (const [key, value] of Object.entries(nodeIDs)) {
     if (id === value) {
       return key;
     }
   }
 }
返回的键是数字键 .. 现在,我构建了一个新对象,其中保存了关键索引

const index_source = this.getNodeIndexByID(nodeIDs, obj.source);
const index_target = this.getNodeIndexByID(nodeIDs, obj.target);

let my_obj = Object.create({}, { source: { value: index_source }, target: { value: index_target } });
out.push(my_obj);
现在,
out.source
out.target
的值是字符串类型。。为什么?我的意思是,数组索引是数字的。。
我错过了什么。。我需要它们是数字的。

JavaScript对象的键总是(总是!)字符串,即使它们是使用数字键写入的

换句话说,

x[0] = 1
完全一样

x["0"] = 1

如果你计算一个对象的键/值对,你会看到字符串键,因为JavaScript对象的键总是字符串。

这对我来说是新的,我希望
x[0]
只对数组对象起作用。Nit:iterator会导致类似于['foo',bar']的(const[key,value])的
for(const[key,value])。entries()
具有
键的类型==='number'
。从技术上讲,这不是一个带有数字键的JavaScript对象,因为对象的实例仍然是字符串<代码>条目代表您将它们转换为数字不会改变这一点。这很奇怪。。因为我需要将对象传递给第三方脚本,该脚本中包含此代码
if(typeof edge.source==“number”){..