如何纠正函数错误,TypeError'blattenArray'不是Mocha中的函数

时间:2018-04-04 21:57:06

标签: javascript mocha chai

我正在学习摩卡和柴的基本测试。我的测试因错误而失败,“TypeError:flattenArray不是函数”。这是功能代码... 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测试工作?

2 个答案:

答案 0 :(得分:1)

函数flattenArray()named export。你应该像这样导入它:

import { flattenArray } from '../src/flattenArray';

答案 1 :(得分:0)

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));