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

使用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);});

是否有更好的方法将对象转换为数组或函数?


SMILET
浏览 8217回答 3
3回答

幕布斯6054654

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]]

波斯汪

如果您正在寻找一种功能方法: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)

蝴蝶刀刀

我想你可以用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]);         }     }}
打开App,查看更多内容
随时随地看视频慕课网APP