我有一個重復的陣列objects。
我必須找到所有最后一個重復項,并將其從array.
在 Chrome 中,我使用findLastIndex, 來獲取索引并將其洗掉。遺憾的是,Firefox 不支持該功能。
任何其他想法如何以簡單的方式獲取duplicate物件的最后一個索引array?
(要找到我object使用的屬性name: string,我沒有 ID,這就是我需要索引的原因。
我已經嘗試使用myArr.lastIndexOf(myArr.find((item) => item.name == itemName));但它不起作用。
這是陣列的示例:
[{
imgSource: "/sushi/test2.png"
ingredients: "Nori, Cucumber, Rice, Cream cheese, Sesame, Unagi sauce"
name: "sushi1"
price: 133
weight: 120
},
{
imgSource: "/sushi/test2.png"
ingredients: "Nori, Cucumber, Rice, Cream cheese, Sesame, Unagi sauce"
name: "sushi1"
price: 133
weight: 120
},
{
imgSource: "/sushi/test3.png"
ingredients: "Rice, Cream cheese, Sesame"
name: "sushi3"
price: 150
weight: 100
}
]
uj5u.com熱心網友回復:
findLastIndex不是 js 函式,但我認為你想要做的是這樣的:
let arr = [
{
imgSource: "/sushi/test2.png",
ingredients: "Nori, Cucumber, Rice, Cream cheese, Sesame, Unagi sauce",
name: "sushi1",
price: 133,
weight: 120,
},
{
imgSource: "/sushi/test2.png",
ingredients: "Nori, Cucumber, Rice, Cream cheese, Sesame, Unagi sauce",
name: "sushi1",
price: 133,
weight: 120,
},
{
imgSource: "/sushi/test3.png",
ingredients: "Rice, Cream cheese, Sesame",
name: "sushi3",
price: 150,
weight: 100,
},
];
let lastIndex = arr.lastIndexOf(arr.reverse().find(ele=>ele.name=="sushi1"))
console.log(lastIndex)
請注意,我使用該reverse()功能是find()因為您需要最后一個。
==額外注意:這些重復的物件在或===觀點上并不相同,作為物件的質量檢查操作員,檢查參考而不是實際值
uj5u.com熱心網友回復:
JS中沒有findLastIndex
你可以做一套
let arr = [{
imgSource: "/sushi/test2.png",
ingredients: "Nori, Cucumber, Rice, Cream cheese, Sesame, Unagi sauce",
name: "sushi1",
price: 133,
weight: 120
},
{
imgSource: "/sushi/test2.png",
ingredients: "Nori, Cucumber, Rice, Cream cheese, Sesame, Unagi sauce",
name: "sushi1",
price: 133,
weight: 120
},
{
imgSource: "/sushi/test3.png",
ingredients: "Rice, Cream cheese, Sesame",
name: "sushi3",
price: 150,
weight: 100
}
]
const mySet = new Set()
arr.forEach(item => mySet.add(JSON.stringify(item)))
const newArr = Array.from(mySet).map(entry => JSON.parse(entry))
console.log(newArr)
uj5u.com熱心網友回復:
我終于找到了答案,感謝 Mohamad ali ghorbani,我設法找到了正確的方法。
這是我獲得最后一個索引的方式:
const nameArray = myCart.map((item) => item.name);
const indexOfItem = nameArray.lastIndexOf(itemName);
myCart.splice(indexOfItem, 1);
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/427179.html
標籤:javascript 数组
