为了账号安全,请及时绑定邮箱和手机立即绑定

使用jQuery将JS对象转换为数组

使用jQuery将JS对象转换为数组

SMILET 2019-06-16 15:55:56
使用jQuery将JS对象转换为数组我的应用程序创建了一个JavaScript对象,如下所示:myObj= {1:[Array-Data], 2:[Array-Data]}但我需要这个对象作为数组。array[1]:[Array-Data]array[2]:[Array-Data]因此,我试图通过迭代$.each通过对象并将元素添加到数组中:x=[]$.each(myObj, function(i,n) {     x.push(n);});是否有更好的方法将对象转换为数组或函数?
查看完整描述

3 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

var myObj = {
    1: [1, 2, 3],
    2: [4, 5, 6]};var array = $.map(myObj, function(value, index) {
    return [value];});console.log(array);

产出:

[[1, 2, 3], [4, 5, 6]]


查看完整回答
反对 回复 2019-06-16
?
波斯汪

TA贡献1811条经验 获得超4个赞

如果您正在寻找一种功能方法:

var obj = {1: 11, 2: 22};var arr = Object.keys(obj).map(function (key) { return obj[key]; });

成果如下:

[11, 22]

与ES6箭头函数相同:

Object.keys(obj).map(key => obj[key])

有了ES7,你就可以使用Object.values相反(更多信息):

var arr = Object.values(obj);

或者,如果您已经使用了下划线/lo-Dash:

var arr = _.values(obj)


查看完整回答
反对 回复 2019-06-16
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

我想你可以用for in但是检查该财产是否没有被嵌入

myObj= {1:[Array-Data], 2:[Array-Data]}var arr =[];for( var i in myObj ) {
    if (myObj.hasOwnProperty(i)){
       arr.push(myObj[i]);
    }}

编辑-如果需要,也可以保留对象的索引,但必须检查它们是否为数字(如果缺少索引,则得到未定义的值:

function isNumber(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);}myObj= {1:[1,2], 2:[3,4]}var arr =[];for( var i in myObj ) {
    if (myObj.hasOwnProperty(i)){
        if (isNumber(i)){
            arr[i] = myObj[i];
        }else{
          arr.push(myObj[i]);
        }
    }}


查看完整回答
反对 回复 2019-06-16
  • 3 回答
  • 0 关注
  • 8216 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信