我有以下代码
const xPosition = coordinates.find(position => position.x === avoidObstacleX);
这将向我返回坐标{x:26,y:10},这没错,但是我还有另一个坐标是{x:26,y:11}我想输出的坐标有什么方法可以将两个参数传递给find方法?
答案 0 :(得分:2)
您可以使用两个变量(而不是find
方法本身的参数),就像您已经使用过一个一样:
function findObstacle(coordinates, avoidObstacleX, avoidObstacleY) {
return coordinates.find(position => position.x === avoidObstacleX
&& position.y === avoidObstacleY);
}
const xyPosition = findObstacle(coordinates, avoidObstacleX, avoidObstacleY);
但是从另一个答案中,我现在了解到您的问题有两种解释...
答案 1 :(得分:1)
find
仅检索单个元素,您需要使用filter方法:
const coordinates = [ {x: 26, y: 10}, {x: 26, y: 11}, {x: 12, y: 34} ]
const avoidObstacleX = 26;
// returns [ {x: 26, y: 10}, {x: 26, y: 11} ]
const xPosition = coordinates.filter(position => position.x === avoidObstacleX);
答案 2 :(得分:0)
要传递一个值:
const coordinates= [
{x: 26, y: 10},
{x: 26, y: 11},
{x: 36, y: 6},
{x: 7,y: 8}
]
const avoidObstacleX=26;
let result = coordinates.filter(position=> {
return position.x === avoidObstacleX ;
})
console.log(result)
您可以传递两个值:
const coordinates= [
{x: 26, y: 11},
{x: 26, y: 11},
{x: 26, y: 11},
{x: 7,y: 8}
]
function find(avoidObstaclex,avoidObstacley){
let result= coordinates.filter(position=> {
return position.x === avoidObstaclex && position.y === avoidObstacley ;
})
return result;}
const avoidObstacleX=26;
const avoidObstacleY=11;
console.log(find(avoidObstacleX,avoidObstacleY))