说我想从一个空白的JavaScript对象开始:
me = {};
然后我有一个数组:
me_arr = new Array();
me_arr['name'] = "Josh K";
me_arr['firstname'] = "Josh";
现在我想将该数组放入对象中,以便我可以使用me.name
返回Josh K
。
我试过了:
for(var i in me_arr)
{
me.i = me_arr[i];
}
但这没有达到预期的效果。这可能吗?我的主要目标是将此数组包装在JavaScript对象中,以便将其作为JSON传递给PHP脚本(通过AJAX或其他)。
答案 0 :(得分:6)
由于属性名称也是变量,因此循环应如下所示:
for(var i in me_arr)
{
me[i] = me_arr[i];
}
要了解有关JSON的更多信息,您可能会发现this article很有用。
答案 1 :(得分:2)
您可能正在寻找像json_encode
答案 2 :(得分:1)
在上面的代码中,您一遍又一遍地设置me.i属性。要做你在这里描述的内容,试试这个:
for(var i in me_arr)
{
me[i] = me_arr[i];
}
答案 3 :(得分:1)
真正克隆对象而不用担心引用的最简单方法是
var newObj = JSON.parse(JSON.stringify(oldObj));
非常方便,但如果您的对象中有功能则不可行。
答案 4 :(得分:0)
在已完成的阵列上使用json_encode()
。
答案 5 :(得分:0)
首先,“me_arr”不应该是一个数组,因为你实际上并没有使用它。
var me_arr = {};
me_arr.name = "Josh K";
me_arr.firstname = "Josh";
或者,更短:
var me_arr = { "name": "Josh K", "firstname": "Josh" };
现在,你的循环几乎是正确的:
for (var key in me_arr) {
if (me_arr.hasOwnProperty(key))
me[key] = me_arr[key];
}
我不确定首先有两个变量是什么意思,但无论如何。另外:确保使用var
!!
答案 6 :(得分:0)
你应该看看JSON in JavaScript。可以下载JSON library,它可以帮助您构建JSON对象。
答案 7 :(得分:0)
你为什么不这样做:
me['name'] = "Josh K";
me['firstname'] = "Josh";
?
这与
me.name = "Josh K";
me.firstname = "Josh";
阅读这篇关于"associative arrays in JS"的有趣文章。