#javascript #arrays
#javascript #массивы
Вопрос:
Я исследовал эту проблему и не нашел простого решения, или оно не было разбито на то, что я могу понять. Это должно быть чрезвычайно просто, но это не так.
Мне нужно сохранить данные (массив) в одном файле (file1)
const myArray= new Array['data0', 'data1', 'data2'];
module.exports = { myArray};
внутри второго файла я пытаюсь импортировать его и вызвать его следующим образом (file2)
import myArray from './file1';
console.log myarray[0, 1, 2]
Комментарии:
1. Вы экспортируете массив как объект со свойством в нем, называемым «myArray». Также вы экспортируете его через старую школу
module.exports
, а затем пытаетесь импортировать его как модуль ES2015.2. Кроме того, этот
new Array[]
синтаксис неверен; все, что вам нужно, это инициализатор массива.3. Я слышу, что вы говорите. Я не знаю, как это исправить. это кажется таким простым, но я в своем уме
Ответ №1:
Я буду честен с вами, я не могу придумать вариант использования, в котором вам нужно было бы экспортировать / импортировать простой массив строк. Экспорт объекта (возможно, содержащего массив) имеет немного больше полезности. Но должно сработать следующее.
// file1.mjs
const myArray = ['data0', 'data1', 'data2'];
export default myArray;
// file2.mjs
import myArray from './file1.mjs';
console.log('myArray =>', myArray);
Комментарии:
1. это просто выдает ошибку TypeError: не ошибка конструктора
2. Я не знаю, как вы получили ошибку типа, но была ошибка ссылки (упс!). Повторите попытку. Я не знаю, на каком движке JS вы это используете, но в Node вам, возможно, придется обновить
package.json
и запустить свое приложение следующимnode --experimental-modules file2.mjs
образом. nodejs.org/api/packages.html#packages_determining_module_system3. Я работаю в узле. Спасибо. Я смог решить эту проблему с помощью вашего предложения.
Ответ №2:
Экспорт
export const myArray = ['data0', 'data1', 'data2'];
Импорт
import { myArray } from './file1';
Комментарии:
1. та же проблема. Я получаю ошибку «не конструктор»
2. const myArray= новый массив[‘data0’, ‘data1’, ‘data2’]; это неправильно, вы не можете создать массив таким образом. const myArray = [‘data0’, ‘data1’, ‘data2’]; как это или const myArray = новый массив (‘data0’, ‘data1’, ‘data2’); как это
3. но затем я добавил console.log
Ответ №3:
Вот что я сделал, что сработало для меня (это в узле, не уверен насчет браузера)
file2.js:
const arr = ["a", "b", "c"];
export {arr};
file1.js:
import {arr} from "./file2.js"
console.log(arr);
выходные данные: [‘a’,’b’,’c’]
необходимо установить «type»:»module» в package.json
Сначала я тоже был сбит с толку тем, почему другие сообщения не работали, но когда я изменил его на полное имя файла, это сработало.