2016-07-25 54 views
-2
function objectToArray (object) { 
    var array = []; 
    var str = ""; 
    for (var key in object) { 
     array.push(key); 
     array.push(object[key]); 
     if (object.hasOwnProperty(key)) { 
      str += key + " is " + object[key] + ""; 
     } 
    } 
    console.log(array); 
} 
objectToArray({name: "Marcia", age: 101}); 

输出为[ 'name', 'Marcia', 'age', 101 ],我需要它为["name is Marcia", "age is 101"]如何将传入的对象转换为字符串数组

回答

3

取而代之的是:

array.push(key); 
    array.push(object[key]); 
    if (object.hasOwnProperty(key)) { 
     str += key + " is " + object[key] + ""; 
    } 

你想这样的:

if (object.hasOwnProperty(key)) { 
     array.push(key + " is " + object[key] + ""); 
    } 
+0

这工作。谢谢。 – Shmosh

2

@VoteyDisciple已经正确地指出,你在哪里错了你的方法。另一种(短)的方式来实现你的功能是:

function objectToArray (object) { 
 
    return Object.keys(object).map(function (key) { 
 
    return key + " is " + object[key]; 
 
    }); 
 
} 
 

 
var arr = objectToArray({name: "Marcia", age: 101}); 
 
console.log(arr);

相关问题