Javascript数组:TypeError:无法读取undefined的属性

时间:2014-03-04 19:34:40

标签: javascript jquery json

创建JSON对象非常简单。不知道问题出在哪里。
试图像这样创建一个JSON对象:

var result = [
            {"member":"member1", "person":"person1"},
            {"member":"member2", "person":"person2"}
];

以下是代码:

$ = cheerio.load('<table><tbody><tr><td>message1</td><td>person1</td></tr><tr><td>message2</td><td>person2</td></tr><tr><td>message3</td><td>person3</td></tr></tbody></table>');
var result = {};
$('tr').each(function(i, row){
    result[i].message.push($(this).find('td').eq(0).text());
    result[i].person.push($(this).find('td').eq(1).text());
});

错误: TypeError: Cannot read property 'message' of undefined

2 个答案:

答案 0 :(得分:1)

var cheerio = require("cheerio");

$ = cheerio.load('<table><tbody><tr><td>message1</td><td>person1</td></tr><tr><td>message2</td><td>person2</td></tr><tr><td>message3</td><td>person3</td></tr></tbody></table>');
var result = [];
$('tr').each(function(i, row){

    result[i] = {
        message: $(this).find('td').eq(0).text(),
        person: $(this).find('td').eq(1).text()
    };

});

console.log (result);

结果:

[ { message: 'message1', person: 'person1' },
  { message: 'message2', person: 'person2' },
  { message: 'message3', person: 'person3' } ]

答案 1 :(得分:0)

这就是我想要的:

var result = new Array();
$('tr').each(function(i, row){

    var ele = {
        message: $(this).find('td').eq(0).text(),
        person: $(this).find('td').eq(1).text()
    };
    console.log(ele);
    result.push(ele);
}); 

console.log(result);