You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中如何导出和导入包含动态值的数组

实现方案分两类场景

场景1:同项目运行时跨文件共享动态数组

  • 如果你是在同一个前端/Node.js项目运行时,需要让其他文件拿到最新的动态数组,直接用模块化导出可变引用即可,JS导出的对象/数组本身是引用类型,导出后和原文件修改数组内容,目标文件拿到的是同一个内存地址的引用,始终能访问到最新值。

ES Module 写法

首先在数组所在的源文件(比如source.js):

// 初始化空数组,后续动态往里传入对象
export const dynamicArray = []

// 动态填充数组的示例方法
export function addItem(item) {
  dynamicArray.push(item)
}

在目标文件中直接导入即可访问:

import { dynamicArray, addItem } from './source.js'

// 直接访问数组所有元素,拿到的都是动态更新后的最新值
console.log(dynamicArray)
// 操作的是同一个数组,修改后原文件的数组也会同步变化
addItem({id: 1, name: 'test'})

CommonJS 写法(Node.js环境常用)

源文件source.js:

const dynamicArray = []

function addItem(item) {
  dynamicArray.push(item)
}

module.exports = { dynamicArray, addItem }

目标文件导入:

const { dynamicArray, addItem } = require('./source.js')
console.log(dynamicArray)

场景2:需要把运行时的数组持久化导出为静态JS文件

如果你是要把运行时已经填充完所有对象的数组,生成一个新的独立JS文件,之后可以直接导入这个静态文件使用里面的固定值,Node.js环境下可以用文件写入能力实现:

const fs = require('fs')
// 已经填充完所有对象的动态数组
const dynamicArray = [{id:1}, {id:2}, {id:3}]

// 生成导出的JS文件内容
const fileContent = `export const savedArray = ${JSON.stringify(dynamicArray, null, 2)}`

// 写入到目标路径的js文件
fs.writeFileSync('./savedArray.js', fileContent)

生成完成后,在任意文件都可以直接导入savedArray.js拿到完整的数组内容。

注意:如果数组里的对象包含函数、Symbol等JSON不支持的类型,需要自己编写专门的序列化逻辑处理。

内容的提问来源于stack exchange,提问作者styldimitr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 02:27:03