javascript JS数组拼接删除第一个元素[已关闭]

v7pvogib  于 2023-01-24  发布在  Java
关注(0)|答案(3)|浏览(374)

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
17小时前关门了。
Improve this question
所以,我有一个pfp数组:

["63c959f37337160e2de8b7e4/20230122173537/profilepicture.png","63c959f37337160e2de8b7e4/20230122173616/profilepicture.png"]

而且,我想从列表中删除"63c959f37337160e2de8b7e4/20230122173616/profilepicture.png"
但是当我运行这段代码时:

let foundPfp = await pfps.find((pfp: any) => pfp === data.pfpId)
if (foundPfp != -1)
   pfps.splice(foundPfp, 1)

然后移除"63c959f37337160e2de8b7e4/20230122173537/profilepicture.png"
你能告诉我为什么吗?谢谢!

atmip9wb

atmip9wb1#

不知道这是否有用,但是...

从数组中删除第一个元素

let foundPfp = await pfps.find((pfp: any) => pfp === data.pfpId);
foundPfp.shift();
console.log('first element removed', foundPfp);

或者,如果要从数组中删除特定元素:

const pfps = ["63c959f37337160e2de8b7e4/20230122173537/profilepicture.png","63c959f37337160e2de8b7e4/20230122173616/profilepicture.png"]
const indexOfElementToRemove = pfps.indexOf("63c959f37337160e2de8b7e4/20230122173537/profilepicture.png");
pfps.splice(indexOfElementToRemove, 1);
console.log(pfps);
2w2cym1i

2w2cym1i2#

Array.prototype.find()返回元素本身。Array.prototype.splice()需要索引作为第一个参数。应改用Array.prototype.findIndex()

mspsb9vt

mspsb9vt3#

我会使用filter()方法。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

let pfps = ["63c959f37337160e2de8b7e4/20230122173537/profilepicture.png","63c959f37337160e2de8b7e4/20230122173616/profilepicture.png"]
pfps = pfps.filter(item => item!="63c959f37337160e2de8b7e4/20230122173616/profilepicture.png");

相关问题