如何更正函数错误,TypeError 'flattenArray' 不是 Mocha 中的函数
How to correct a function error, TypeError 'flattenArray' is not a function in Mocha
我正在使用 Mocha 和 Chai 学习基本测试。我的测试一直失败并出现错误 "TypeError: flattenArray is not a function"。这是函数代码...flattenArray.js
export function flattenArray(arr){
let result = [];
arr.forEach(function(element) {
if(!Array.isArray(element)) {
result.push(element);
} else {
result = result.concat(flattenArrays(element));
}
});
return result;
}
这是我的测试文件,flattenArray.spec.js
var chai = require('chai');
var assert = require('chai').assert;
var expect = require('chai').expect;
var describe = require('mocha').describe;
import * as flattenArray from '../src/flattenArray';
describe('Array', function() {
describe('#flattenArray()', function() {
it('should return a single, flat array', function(){
expect(flattenArray([1,2,3])).to.be.equal([1,2,3])
})
})
})
describe('Array', function() {
it('should start empty', function() {
var arr = [];
assert.equal(arr.length, 0);
});
});
我做错了什么?我有一个通过和一个失败。如何让 flattenArray 测试起作用?
函数 flattenArray()
是一个 named export。你应该像这样导入它:
import { flattenArray } from '../src/flattenArray';
const data = [1, 2, 'abc', [4 ,{a:[5],b:{c:6}}], [], [[7]], null, 8,['xyz',9],[[]]];
let newArray = [];
function flattenArray(arr){
for(var i in arr){
if(typeof arr[i] != "object"){
newArray.push(arr[i])
}else{
flattenArray(arr[i])
};
}
return newArray;
}
console.log(flattenArray(data));
我正在使用 Mocha 和 Chai 学习基本测试。我的测试一直失败并出现错误 "TypeError: flattenArray is not a function"。这是函数代码...flattenArray.js
export function flattenArray(arr){
let result = [];
arr.forEach(function(element) {
if(!Array.isArray(element)) {
result.push(element);
} else {
result = result.concat(flattenArrays(element));
}
});
return result;
}
这是我的测试文件,flattenArray.spec.js
var chai = require('chai');
var assert = require('chai').assert;
var expect = require('chai').expect;
var describe = require('mocha').describe;
import * as flattenArray from '../src/flattenArray';
describe('Array', function() {
describe('#flattenArray()', function() {
it('should return a single, flat array', function(){
expect(flattenArray([1,2,3])).to.be.equal([1,2,3])
})
})
})
describe('Array', function() {
it('should start empty', function() {
var arr = [];
assert.equal(arr.length, 0);
});
});
我做错了什么?我有一个通过和一个失败。如何让 flattenArray 测试起作用?
函数 flattenArray()
是一个 named export。你应该像这样导入它:
import { flattenArray } from '../src/flattenArray';
const data = [1, 2, 'abc', [4 ,{a:[5],b:{c:6}}], [], [[7]], null, 8,['xyz',9],[[]]];
let newArray = [];
function flattenArray(arr){
for(var i in arr){
if(typeof arr[i] != "object"){
newArray.push(arr[i])
}else{
flattenArray(arr[i])
};
}
return newArray;
}
console.log(flattenArray(data));