javascript array.push里面for循环 - 结果不是数组?

时间:2013-04-21 19:54:34

标签: javascript arrays

我正在尝试使用for循环来访问数组,以访问数据库中的某些记录,然后将某些DB字段的内容与文本组合以创建每个数组元素。这就是我所拥有的:

var numbers = [7,8];
var phsw = [];
for (var i=0,len=numbers.length;i<len;i++) {
    selectObj = cObj.select().from("wp_posts").where('ID=?', numbers[i]);
    result1 = cObj.exec(selectObj);
    var resource = result1[0].guid;
    var title = result1[0].post_title;
    var tnTxt = result1[0].post_title;
    var tn = resource.replace(/\.jpg/,"-150x150.jpg");
    phsw.push({mytitle:'" + title + "', mythumbnail:'" + tn + "', mytntxt:'" + tnTxt + "', myresource:'" + resource +"'});
    }

这创建了我认为的数组,除了它显然不是一个数组。当我使用console.log(phsw)查看其中的内容时,我得到了这个:

[{mytitle:'title',mythumbnail:'imagefile1tnlink',mytntxt:'thumbtxt1',myresource:'imagefile1link'},{mytitle:'title2',mythumbnail:'imagefile2tnlink',mytntxt:'thumbtxt2',myresource : 'imagefile2link'}]

我应该得到这个:

[object Object]

如果它真的是一个数组(对吗?)。

我在Application Craft中使用它,并且使用服务器端javascript创建phsw数组,然后将其传递给应用程序端的回调,但是当它返回到应用程序端时,我无法使用它填充一个小部件,因为它不是一个真正的数组。我怎样才能确保phsw是一个数组?

是的,我确信这段代码不是最干净或最有效的方法;我的(相当生疏)经验是PHP和MySQL而不是javascript,所以我总是乐于接受更好的做事方式的建议!

1 个答案:

答案 0 :(得分:0)

没有一切都是正确的。它实际上是一个包含2个对象的数组。

您希望获得[object Object]是错误的。