为什么.join返回[object Object]

时间:2013-04-27 08:34:04

标签: javascript jquery arrays join position

为什么var test = positions.join("/");返回[object Object] / [object Object] / [object Object]等等? 需要改变什么才能使其正常工作?

它应该返回0,0 / 0,360 / 0,660等位置。我不确定逗号是否会在那里。

$(function() {
    $('.AppList').droppable({
        accept: ".App",
        tolerance: 'fit',
        drop: function(event, ui) {
            var apps = $(".App"),
            positions = [];

            $.each(apps, function (index, app) {
                var positionInfo = $(app).position();

                positions.push(positionInfo);
            });
            var test = positions.join("/");
            console.log(test);
        }
    }); 
});

3 个答案:

答案 0 :(得分:2)

怎么样:

var test = JSON.stringify(positions);
console.log(test);

无需发明自己的序列化格式。

答案 1 :(得分:1)

您正在从函数position()返回对象。试试这个:

 $.each(apps, function (index, app) {
           var pos =  $(app).position(),   
               positionInfo = pos.top+","+ pos.left;

            positions.push(positionInfo);
        });

答案 2 :(得分:0)

Array.join() method返回一个字符串。由于你的数组项是objects,所以你不能指望任何特别有用的东西 - [object Object]是JavaScript在将对象转换为字符串时默认创建的。