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”){..