繁体   English   中英

Foreach 数组元素在多维数组 javascript 中搜索值

[英]Foreach Array Element Search for values in multidimension Array javascript

尝试通过以下方式将数组的每个元素与多维数组中的一组坐标匹配:

array1= [0, 5, 4]
array2 = [
{x: 1, y: 4, name: 'A', w: 0}, 
{x: 2, y: 8, name: 'E', w: 4}, 
{x: 3, y: 1, name: 'F', w: 5}];

我希望将数组 1 的每个元素与数组 2 中 w 的值匹配

0 -> {x: 1, y: 4, name: 'A', w: 0}
5 ->  {x: 3, y: 1, name: 'F', w: 5}
4 -> {x: 2, y: 8, name: 'E', w: 4}

我想返回:

[
{x:1, y,4}, {x:3, y:1},
{x:3, y:1}, {x:2, y:8},
...
];

您可以链接数组过滤器和 map 来做这样的事情

Array.prototype.filter()根据第一个数组的索引过滤所有元素

Array.prototype.map()修改 object 以便只显示 x 和 y 坐标

 const array1 = [0, 5, 4]; const array2 = [ { x: 1, y: 4, name: "A", index: 0 }, { x: 2, y: 8, name: "E", index: 4 }, { x: 3, y: 1, name: "F", index: 5 }, ]; const newArr = array2.filter(x => array1.includes(x.index)).map(x => ({ x: xx, y: xy })); console.log(newArr)

您应该将所需的 x 和 y 坐标作为数组返回。

请为此找到一个工作小提琴。

 const array1 = [0, 5, 4] const array2 = [ { x: 1, y: 4, name: 'A', w: 0 }, { x: 2, y: 8, name: 'E', w: 4 }, { x: 3, y: 1, name: 'F', w: 5 }, ]; const tempArray = array1.map((item) => array2.find((node) => node.w === item)); // console.log(tempArray); const finalArray = tempArray.map((currentNode, index, actualArray) => { const nextIndex = index === actualArray.length - 1? 0: index + 1; return [ { x: currentNode.x, y: currentNode.y }, { x: actualArray[nextIndex].x, y: actualArray[nextIndex].y }, ]; }); console.log(finalArray);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM