typescript - 对象属性应该是整数但是字符串?

时间:2018-03-01 18:00:57

标签: 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.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.sourceout.target的值是typeOf STRING ..为什么? ..我的意思是,数组索引是数字.. 我错过了什么? ..我需要它们是数字。

1 个答案:

答案 0 :(得分:1)

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

换句话说,

x[0] = 1

完全相同
x["0"] = 1

如果您正在计算对象的键/值对,您将看到字符串键,因为JavaScript对象的键始终是字符串。