【发布时间】:2016-01-21 09:49:49
【问题描述】:
我正在尝试为如下所示的对象创建一个属性,但如果我键入 Object.keys(window.data),我将得到对象名称为 DENTAL[object Object]
方法如下:
function GetAppliedFilterValue(TabName, filter) { //TabName="DENTAL", filter.CoverageId = 10
var property = TabName.concat(String(filter.CoverageId));
window.data[property.toString()] = {};
我哪里出错了?
PS。对象过滤器的coverageId属性为Number类型
【问题讨论】:
-
尝试在 concat 中使用 .toString() 。像
var property = TabName.concat(filter.CoverageId.toString());这样的东西我怀疑你已经使用 String() 了 -
@SaurabhTiwari Nope.. .toString() 不起作用
-
这种创建对象键的语法需要像 window.data["property"] 这样的字符串。你能不能试着安慰属性变量来看看它到底是什么……也可以试试 typeof 来确定它的类型……它应该是一个字符串。
-
"对象过滤器的coverageId属性是数字类型" - 不,数字不会产生
[object Object]。 -
TabName是一个字符串,对吧?没有理由使用concat甚至property.toString()。只需window.data[TabName + String(filter.CoverageId)]就足够了。
标签: javascript object properties