我正在尝试检查坐标数组 [x,y,z] 是否存在于其他坐标 [[x,y,z],[x',y',z'],..] 的二维数组中。不知indexOf
这里能不能用。
var ALLcoordinates:number[][];
ALLcoordinates = [];
var coordinates: number[];
coordinates = [alea1, alea2, alea3];
for (var i=0; i< dims; i++) {
ALLcoordinates[i]=[];
for (var j=0; j<chainSize; j++){
ALLcoordinates[i][j]=0;
}
}
那么如何让 Typescript “按行”搜索呢?我可以适应indexOf
二维数组,还是必须使用循环?这是我的代码,但我在数据类型上遇到了一个明显的错误:“'number[]' 类型的参数不能分配给'number' 类型的参数。”
if (coordinates.indexOf(ALLcoordinates) == -1) {
// do stuff
}
我很乐意提供任何帮助或想法,thanx!
你可以function
为它写一个:
let ALLcoordinates:number[][] = [[1, 2, 3],[4, 5, 6],[7, 8, 9]];
let coordinates1: number[] = [1, 2, 3];
let coordinates2: number[] = [2, 3, 1];
function contains(array2d: number[][], array: number[]) {
let result = array2d.filter((item) => {
if(item.length === array.length) {
for(var i = 0; i < item.length; i++) {
if(item[i] !== array[i]) {
return false;
}
}
return true;
}
return false;
});
return result.length > 0;
}
console.log(contains(ALLcoordinates, coordinates1)); //true
console.log(contains(ALLcoordinates, coordinates2)); //false
可在这里测试(检查控制台输出)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句