鍍金池/ 問(wèn)答/HTML/ 用斷言庫(kù)chai, 如何判斷一個(gè)數(shù)組是一個(gè)二維數(shù)組, 即數(shù)組的每一項(xiàng)都為一個(gè)數(shù)組

用斷言庫(kù)chai, 如何判斷一個(gè)數(shù)組是一個(gè)二維數(shù)組, 即數(shù)組的每一項(xiàng)都為一個(gè)數(shù)組

如題, 我有一個(gè)函數(shù),這個(gè)函數(shù)返回的數(shù)據(jù)必須是一個(gè)類(lèi)似于:

[
    [1, 2, 3],
    [2, 3, 4]
]

這樣的一個(gè)二維數(shù)組, 如何來(lái)寫(xiě)這個(gè)測(cè)試用例比較好?

回答
編輯回答
朕略傻

偽代碼:

function isArray(v) {
  return (if v is array);
}

var a = ...;

assertTrue(isArray(a));

for (var i = 0; i < a.length; i++) {
  var subArray = a[i];
  assertTrue(isArray(subArray));
  for (var j = 0; j < subArray.length; j++) {
    var subSubArray = subArray[j];
    assertFalse(isArray(subSubArray));
  }
}

2017年11月25日 19:07
編輯回答
半心人

拋磚引玉

const expect = require("chai").expect;
const toAssert = [
    [1, 2, 3],
    [5, 6],5
]
expect(toAssert).to.be.a('array', 'toAssert不是個(gè)數(shù)組').satisfies(obj =>
    obj.map((val, idx) => {
        expect(val).to.be.a('array', `toAssert的第${idx}個(gè)值不是數(shù)組`)
    })
)
2017年12月2日 19:07