我有一個 javascript 代碼
var jsString1 = [];
var jsString = [];
var val1, val2;
val1 = "test1";
val2 = "test2";
jsString1.push("key1");
jsString1.push(val1);
jsString1.push("key2");
jsString1.push(val2);
jsString.push(jsString1);
alert(JSON.stringify(jsString));
這將給出這些結果
// current output
[["key1","test1","key2","test2"]]
但我需要做一個這樣的
// needed output
[{"key1":"test1","key2":"test2"}]
我該怎么做 ?請幫助我,并提前致謝。
uj5u.com熱心網友回復:
您有一個由鍵和值組成的陣列[[key, value, key, value]]。如果陣列是[[key, value], [key, value], ...](條目)的形式,我們可以Object.fromEntries()將其轉換為物件。
要轉換原始條目陣列,請映射該陣列,使用Array.from()將子陣列轉換為 的元組[key, value],然后使用Array.flat()將 3d 陣列轉換為條目的 2d 陣列:
const toEntries = arr =>
arr.map(subArr =>
Array.from({ length: subArr.length / 2 }, (_, i) =>
subArr.slice(i * 2, i * 2 2)
)
).flat(1)
const arr = [["key1","test1","key2","test2"]];
const obj = Object.fromEntries(toEntries(arr))
console.log(JSON.stringify(obj));
uj5u.com熱心網友回復:
通常,你只會做
jsString1.push({
"key1": val1 "key2": val2
})
您的代碼只會推入陣列。
您需要先創建一個物件,然后將該物件添加到陣列中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/315801.html
標籤:javascript 数组 json 目的
上一篇:是否有一種“干凈”的方法可以用來自同一型別的另一個物件的值替換Java中物件的所有屬性值?
下一篇:無法將未定義轉換為物件
