提示,如何检查阵列?在最终结果中,测试应检查数组是否已更改,如果是,则给出无法更改的错误。
import { List, Set } from "immutable"
export let list1: number[] = [1, 2, 3];
export function mass(list1) {
let listFromArray = List(list1);
if (listFromArray == List(list1)) {
throw new Error("immutable");
}
return listFromArray;
};
测试代码:
import {mass} from "./sum"
import { List, Set, isImmutable } from "immutable"
test('check for variability', () => {
const list1: number[] = [1, 2, 3];
const listFromArray = mass(list1);
const expectedResult = List([1, 2, 3]);
expect(expectedResult).toThrowError('Error');
});
答案 0 :(得分:0)
我认为,您正在寻找数组比较。
对于该场景,您可以比较数组中的项目。
有很多有用的方法可以做到这一点,其中一种就是使用every方法:\
var arr_1 = [1,2,3];
var arr_2 = [1,2,3];
if(arr_1.every((v,i) => v === arr_2[i])){
alert("si");
}
else{
alert("no")
}
当然,这并不是经过优化的,因为您可能希望在手出局之前先检查一下长度等。
相关:How to compare arrays in JavaScript?
https://jsfiddle.net/tspqeyz3/
对于immutable.js,有一个equals
方法将检查值的映射。 (NodeJS示例)
const { Map, is } = require('immutable')
const map1 = Map({ a: 1, b: 2, c: 3 })
const map2 = Map({ a: 1, b: 2, c: 3 })
map1 !== map2 // two different instances are not reference-equal
map1.equals(map2) // but are value-equal if they have the same values
is(map1, map2) // alternatively can use the is() function
因此,在这种情况下,您应该能够识别两者的相等性。