首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

JavaScript 數組轉 JSON 格式的多種實現方式

     編輯:程式設計疑難解答

需求場景

將普通數組 ['10628.00RBLWHI', '15487.00ROSA'] 轉換為對象數組格式:[{"data":"10628.00RBLWHI"}, {"data":"15487.00ROSA"}]。

核心方法

1. map 方法(ES6 推薦,簡潔高效)

const arr = ['10628.00RBLWHI', '15487.00ROSA'];
const jsonArr = arr.map(item => ({ data: item }));
console.log(jsonArr); 
// [{"data":"10628.00RBLWHI"}, {"data":"15487.00ROSA"}]

2. forEach 遍歷(兼容性好,邏輯清晰)

const arr = ['1', '2', '3'];
const result = [];
arr.forEach(item => {
    result.push({ data: item });
});
console.log(result);

3. 傳統 for 循環(舊環境兼容)

var arr = ['1', '2', '3'];
for (var i = 0; i < arr.length; i++) {
    arr[i] = { data: arr[i] }; // 原地修改
}
console.log(arr);

4. reduce 累積(函數式風格)

const jsonArr = arr.reduce((acc, cur) => {
    acc.push({ data: cur });
    return acc;
}, []);

進階場景:多字段對象構建

若需根據索引或其他邏輯生成多字段對象:

const arr = ['A', 'B', 'C'];
const result = arr.map((value, index) => ({
    id: index + 1,
    code: value,
    timestamp: Date.now()
}));

注意事項

  • 原數組是否可變:map 返回新數組,for 循環可原地修改,根據業務選擇。
  • 深拷貝需求:若數組元素為對象,需注意引用共享問題,可用 JSON.parse(JSON.stringify(item)) 或 Object.assign 深拷貝。
  • 性能考量:大數據量時 for 循環最快,map 次之,forEach 稍慢,但現代引擎優化下差異微乎其微。

總結

JS 數組轉 JSON 格式,推薦使用 Array.map() 方法,代碼簡潔、語義明確、符合函數式編程範式。根據項目兼容性要求,可選擇 forEach 或傳統循環。理解各方法特性,靈活應對不同業務場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved