我正在寻找向对象中的数组添加值数组但由于某种原因,结构看起来不正确。
我从空对象开始:
var title = "name";
var kw = "fashion";
objectName = {[title]: [] };
然后我将一个字符串推入数组:
objectName[title].push(kw);
但是,当我console.log
objectName
时,我会看到以下屏幕截图:
我想改为使用以下结构:
{"name":["Item 1", "Item 2", "Item 3", "Item 4"]}
我是否错误地构建了数组?我很困惑为什么属性名称(utm_term [assisting])也出现在数组下面。
答案 0 :(得分:1)
如果该属性应该被称为name
(title
的值),那么您的代码在ES2015 +(6月的新JavaScript标准)中就可以了。 ,但你可能在ES5或更早版本中使用它,因为这是大多数JavaScript引擎目前支持的。
在这种情况下,您需要将objectName
初始化分为两部分:
objectName = {};
objectName[title] = [];
E.g:
var title = "name";
var kw = "fashion";
var objectName = {};
objectName[title] = [];
objectName[title].push(kw);
snippet.log(JSON.stringify(objectName, null, 2)); // Just using JSON for output display
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="//tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
(我假设您已在某处声明了objectName
变量。如果没有,请务必添加我在上面添加的var
,否则您将成为The Horror of Implicit Globals的牺牲品。)