在JavaScript中从JQuery.each()返回一个对象

时间:2017-10-06 16:17:44

标签: javascript jquery json

我在JavaScript中有这段代码

lastUpdated: 1492665454,
  items:

  [
    $.each(objectStory, function(key, value) {
      //key + ": " + value ;
      //console.log(value)
      console.log(JSON.stringify(value));
      //document.write(sitem);

      return JSON.stringify(value);
    }),
  ]

}]

console.log按我的意愿打印对象,但返回功能不起作用。数据来自使用ajax调用的json文件。 这是consolg日志的回归

{"id":"87","type":"image","src":"url/IMG_2363.MOV"}

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:2)

$.each返回被调用的对象(用于与其他方法链接),而不是您希望的字符串。当你需要结果时,你应该使用map`。请看一下显示差异的片段:

var objectStory = {
 k1: 1,
 k2: 2,
 k3: 3
}

var eachResult = $.each(objectStory, function(key, value) {
  return JSON.stringify(value);
});

var mapResult = $.map(objectStory, function(value) {
  return JSON.stringify(value);
});

console.log(eachResult);
console.log(mapResult);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

在您的代码中,您应该以这种方式为键items指定值:

var obj = {
    // other fields
    items: $.map(objectStory, function(value) {
       return JSON.stringify(value);
    })
};

否则,您的items键下会嵌套数组。