首页 > Javascript output

Javascript output

1、我的javascript代码如下

d = [];
function output (a) {
    d.push($.each(a, function(i, v){v.question}));
    return d;
}

a=[  
    {
        question: "您怎么看9月2日中金所出台的期指监管措施?",
    },
    {
        question: "您认为中金所严管期指目的何在?",
    },
    {
        question: "您认为这些措施对A股今后有何影响?",
    }
];

//输出d的代码就不贴了。

输出:

[object Object],[object Object],[object Object]

document.write(value.question)页面其他东西就没有了,只剩下js输出的question。求解决办法,就像php echo语法一样,输出question fields。


问题关键是

 d.push($.each(a, function(i, v){v.question}));

你这样写实际上是把$.each()函数的返回值push进了d数组。
根据jQuery文档http://api.jquery.com/jquery.each/
返回值实际上就是a本身。
你希望的是把a数组每个元素的question属性依次push到d数组中,这个逻辑应该写在$.each()的回调函数中,如下:

$.each(a, function(index, value) {
    d.push(value.question);
})

如果不使用jQuery,用原生JS的写法(ES5函数方法,IE9+兼容),参照MDN文档https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
如下:

a.forEach(function(value) {
    d.push(value.question);
})

其实最直观的方法是使用数组map方法,该方法返回一个由原数组中每个元素被回调函数调用后的返回值组成的新数组。
jQuery版:

var d = $.map(a, function(value) {
    return value.question;
})

原生JS(ES5)版:

var d = a.map(function(value) {
    return value.question;
})

原生JS(ES6)版(使用箭头函数,与本题无关,只为激发题主学习Javascript兴趣):

let d = a.map((value) => value.question);

function output (a) {
var b=$.map(a, function(o, i){return o.question});

return b

}
var c=output(a);
$.each(c,function(i,o){alert(o)})


d = [];
function output (a) {
    $.each(a, function(i, v){
        d. push(v.question);
    });
 }
【热门文章】
【热门文章】