testEdge
- это массив массивов, а newarr
- это массив объектов.Но id
в newarr это число.Поэтому вам нужно преобразовать это в строку перед сравнением.
Также вы можете преобразовать массив массивов testEdge
в один массив, используя flat
и использовать map
в newarr
для возврата нового массиваstringifyNewArr
которые содержат строковые объекты.Затем используйте includes
, чтобы проверить, присутствует ли каждое значение в testEdge в stringifyNewArr
. После этого снова используйте map
для testEdge
и используйте JSON.stringify
для преобразования каждого объекта в строку и используйте includes
чтобы проверить я
const testEdge = [
[{
id: '0',
from: '0',
to: '1'
}, {
id: '1',
from: '1',
to: '3'
}],
[{
id: '2',
from: '0',
to: '2'
}, {
id: '5',
from: '2',
to: '3'
}],
[{
id: '0',
from: '0',
to: '1'
}, {
id: '6',
from: '1',
to: '4'
}, {
id: '7',
from: '4',
to: '6'
}]
];
const newarr = [{
id: 0,
from: "0",
to: "1"
}, {
id: 1,
from: "1",
to: "3"
}, {
id: 2,
from: "0",
to: "2"
}, {
id: 3,
from: "1",
to: "4"
}]
let stringifyNewArr = newarr.map(function(item) {
let newItem = {
id: item.id.toString(),
from: item.from,
to: item.to
}
return JSON.stringify(newItem)
});
let isSameWithNewArr = testEdge.flat().map(function(item) {
let isSame;
if (stringifyNewArr.includes(JSON.stringify(item))) {
isSame = true;
} else {
isSame = false
}
return isSame;
});
console.log(isSameWithNewArr)