javascript - 如果对象数组的长度为 1,则强制 JQuery $.each() 运行一次

标签 javascript jquery

我正在使用 $.each 迭代一个有参数的对象数组。它工作正常,直到数组中只有 1 个对象并且 $.each 遍历它的属性。在这种情况下,我希望循环只运行一次。我如何实现这一点?

$.each(array, function() {
  // Do stuff with each object in the array
})

编辑:数组由 AJAX 调用返回的 JSON 对象组成。大多数情况下,这将是多个对象,但它只能是 1 个。

$.post("/receive", JSON.stringify(postData), function(data) {
  // calling the above function and argumenting data.
}, "json")

最佳答案

如果 data 可以是一个对象数组,有时是一个对象本身而无需包装数组,您仍然可以使用 $.each 循环来统一处理这两种情况:只需将 single将一个对象放入一个对象的数组中,然后使用 $.each,就像您通常用于多个对象的数组一样:

data = [].concat(data);
$.each(data, function() {
    // Do stuff with each object in the array
});

如果 data 是一个数组,那么 [].concat 将产生新的类似数组,否则如果 data 是一个对象,你将得到 [数据]

或者你也可以这样做:

data = data instanceof Array ? data : [data];

关于javascript - 如果对象数组的长度为 1,则强制 JQuery $.each() 运行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29327494/

相关文章:

javascript - 完整的日历形式 Arshaw 不适合,它有一个巨大的高度

javascript - $.getJSON 不起作用,但脚本中的 JSON 对象有效

javascript - 使许多图片可见的复选框

Javascript 将变量视为字符串,为什么?

javascript - Mozilla Firefox 中的 jQuery keydown 事件处理问题

Javascript float 混淆

javascript - 本地存储: Get specific localstorage value of which contains many items

jquery - 使用 jQuery 获取标题属性

javascript - 如何在调用后内容类型中转义 + 作为 application/x-www-form-urlencoded

javascript - 我怎样才能轻轻 "bust"UIWebview?