JavaScrip将数组转为对象与JSON对象字符串转数组方法详解
JavaScrip将数组转为对象(JS数组转对象工作经常用)
我想获取一个元素数组,并将它们转换为一个对象。数组中的元素需要是对象的键,带有一些默认的空字符串,作为以后要更改的值。
['name','age','city', 'town', 'country'] { name: "", age: "", city: "", town: "", country: "" }
最后我发现我们可以使用数组的reduce方法。
我们可以创建一个空对象,传递数组项并使用它们动态创建对象键。
const userChoices = ['name','age','city', 'town', 'country']; const result = userChoices.reduce((acc, curr) => { acc[curr] = "" return acc }, {}) result.name = "calvin" console.log(result)
空对象用作累加器,该累加器被传递回函数并填充数组中的下一项。
acc是我们试图填充并返回的东西,而curr是我们正在迭代的数据中处理的当前项。
js中JSON对象字符串转数组
给定一个JSON字符串,任务是将JSON字符串转换为JSON对象数组。
这个数组包含在JavaScript的帮助下从JSON字符串中获得的JavaScript对象的值。解决这一问题的方法有两种:
方法一
首先使用JSON. parse()方法将JSON字符串转换为JavaScript对象,然后使用push()方法取出对象的值并将它们推入数组。
<!DOCTYPE HTML> <html> <head> <title> How to convert JSON string to array of JSON objects using JavaScript? </title> </head> <body style = "text-align:center;"> <h1 style = "color:green;" > GeeksForGeeks </h1> <p id = "GFG_UP"></p> <button onclick = "myGFG()"> Click Here </button> <p id = "GFG_DOWN"></p> <script> var up = document.getElementById("GFG_UP"); var JS_Obj = '{"prop_1":"val_1", "prop_2":"val_2", "prop_3" : "val_3"}'; up.innerHTML = "JSON string - '" + JS_Obj + "'"; var down = document.getElementById("GFG_DOWN"); function myGFG() { var obj = JSON.parse(JS_Obj); var res = []; for(var i in obj) res.push(obj[i]); down.innerHTML = "Array of values - [" + res + "]"; } </script> </body> </html>
方法二
此方法也是相似的,只是使用不同的方法。使用eval()方法将JSON字符串转换为JavaScript对象,然后取出对象的值并使用push()方法将它们推到数组中。
<!DOCTYPE HTML> <html> <head> <title> How to convert JSON string to array of JSON objects using JavaScript? </title> </head> <body style = "text-align:center;"> <h1 style = "color:green;" > GeeksForGeeks </h1> <p id = "GFG_UP"></p> <button onclick = "myGFG()"> Click Here </button> <p id = "GFG_DOWN"></p> <script> var up = document.getElementById("GFG_UP"); var JS_Obj = '{"prop_1":"val_1", "prop_2":"val_2", "prop_3" : "val_3"}'; up.innerHTML = "JSON string - '" + JS_Obj + "'"; var down = document.getElementById("GFG_DOWN"); function myGFG() { var obj = eval('(' + JS_Obj + ')'); var res = []; for(var i in obj) res.push(obj[i]); down.innerHTML = "Array of values - [" + res + "]"; } </script> </body> </html>
更多关于JavaScrip数组转对象、JSON对象字符串转数组方法请查看下面的相关链接
赞 (0)