If I have the filename and want to delete an entire record for example filename 3.jpg I want to delete the entire record for that filename. how do I do that? a bit more specifics is I want to remove this record { "status": "success", "filename": "3.jpg", "mainpic": "false", "fullurl": "../userimages/5c49c449-50b4-43e4-b218-5913b59bd994.jpg" },
[
{
"status": "success",
"filename": "1.jpg",
"mainpic": "false",
"fullurl": "../userimages/f0380e08-18de-4fdb-80a2-a912809bda97.jpg"
},
{
"status": "success",
"filename": "2.jpg",
"mainpic": "false",
"fullurl": "../userimages/7a4362c8-c9c5-48ee-8672-c332eae59f37.jpg"
},
{
"status": "success",
"filename": "3.jpg",
"mainpic": "false",
"fullurl": "../userimages/5c49c449-50b4-43e4-b218-5913b59bd994.jpg"
},
{
"status": "success",
"filename": "eb0b4954-342c-4c3b-87fe-4744511c1b80.jpg",
"mainpic": "false",
"fullurl": "../userimages/eb0b4954-342c-4c3b-87fe-4744511c1b80.jpg"
},
{
"status": "success",
"filename": "e23ce9e8-5062-41d4-8aea-d11aa795ac45.jpg",
"mainpic": "true",
"fullurl": "../userimages/e23ce9e8-5062-41d4-8aea-d11aa795ac45.jpg"
},
{
"status": "success",
"filename": "d6343604-e6eb-4caa-82bf-2b5c2b346f71.jpg",
"mainpic": "false",
"fullurl": "../userimages/d6343604-e6eb-4caa-82bf-2b5c2b346f71.jpg"
},
{
"status": "success",
"filename": "9768f36a-61b8-4f15-995c-28e38dfe48ad.JPG",
"mainpic": "false",
"fullurl": "../userimages/9768f36a-61b8-4f15-995c-28e38dfe48ad.JPG"
}
]
If I have the filename and want to delete an entire record for example filename 3.jpg I want to delete the entire record for that filename. how do I do that? a bit more specifics is I want to remove this record { "status": "success", "filename": "3.jpg", "mainpic": "false", "fullurl": "../userimages/5c49c449-50b4-43e4-b218-5913b59bd994.jpg" },
[
{
"status": "success",
"filename": "1.jpg",
"mainpic": "false",
"fullurl": "../userimages/f0380e08-18de-4fdb-80a2-a912809bda97.jpg"
},
{
"status": "success",
"filename": "2.jpg",
"mainpic": "false",
"fullurl": "../userimages/7a4362c8-c9c5-48ee-8672-c332eae59f37.jpg"
},
{
"status": "success",
"filename": "3.jpg",
"mainpic": "false",
"fullurl": "../userimages/5c49c449-50b4-43e4-b218-5913b59bd994.jpg"
},
{
"status": "success",
"filename": "eb0b4954-342c-4c3b-87fe-4744511c1b80.jpg",
"mainpic": "false",
"fullurl": "../userimages/eb0b4954-342c-4c3b-87fe-4744511c1b80.jpg"
},
{
"status": "success",
"filename": "e23ce9e8-5062-41d4-8aea-d11aa795ac45.jpg",
"mainpic": "true",
"fullurl": "../userimages/e23ce9e8-5062-41d4-8aea-d11aa795ac45.jpg"
},
{
"status": "success",
"filename": "d6343604-e6eb-4caa-82bf-2b5c2b346f71.jpg",
"mainpic": "false",
"fullurl": "../userimages/d6343604-e6eb-4caa-82bf-2b5c2b346f71.jpg"
},
{
"status": "success",
"filename": "9768f36a-61b8-4f15-995c-28e38dfe48ad.JPG",
"mainpic": "false",
"fullurl": "../userimages/9768f36a-61b8-4f15-995c-28e38dfe48ad.JPG"
}
]
Share Improve this question asked Mar 14, 2012 at 6:09 scripter78scripter78 1,1774 gold badges24 silver badges54 bronze badges 1- If possible, it's better if you stop it from ing into your json result, when you requset the files. You dont use as much bandwidth and you dont have change your json object :-) – mimo Commented Mar 14, 2012 at 6:14
5 Answers
Reset to default 4Try this function:
function deleteRecordByFileName (myArr, fileName) {
var index = null;
for (var i =0; i < myArr.length; i++) {
if (myArr[i].filename === fileName) {
index = i;
break;
}
}
if (index !== null) {
myArr.splice(index, 1);
}
}
and call deleteRecordByFileName (yourArray, "3.jpg");
There is one simple solution for this..
var destArr=[];
var srcArr=[{status:"success",filename:"1.jpg",mainpic:"false",fullurl:"../userimages/f0380e08-18de-4fdb-80a2-a912809bda97.jpg"},{status:"success",filename:"2.jpg",mainpic:"false",fullurl:"../userimages/7a4362c8-c9c5-48ee-8672-c332eae59f37.jpg"},{status:"success",filename:"3.jpg",mainpic:"false",fullurl:"../userimages/5c49c449-50b4-43e4-b218-5913b59bd994.jpg"},{status:"success",filename:"eb0b4954-342c-4c3b-87fe-4744511c1b80.jpg",mainpic:"false",fullurl:"../userimages/eb0b4954-342c-4c3b-87fe-4744511c1b80.jpg"},{status:"success",filename:"e23ce9e8-5062-41d4-8aea-d11aa795ac45.jpg",mainpic:"true",fullurl:"../userimages/e23ce9e8-5062-41d4-8aea-d11aa795ac45.jpg"},{status:"success",filename:"d6343604-e6eb-4caa-82bf-2b5c2b346f71.jpg",mainpic:"false",fullurl:"../userimages/d6343604-e6eb-4caa-82bf-2b5c2b346f71.jpg"},{status:"success",filename:"9768f36a-61b8-4f15-995c-28e38dfe48ad.JPG",mainpic:"false",fullurl:"../userimages/9768f36a-61b8-4f15-995c-28e38dfe48ad.JPG"}];
for(i in srcArr){
if(srcArr[i].filename!="3.jpg")
destArr[i]=srcArr[i];
}
// destJson contains the content excluding node with 3.jpg
//You can replace the original content with destJson
srcArr=destArr;
//Now srcArr contains everything excluding with 3.jpg
What I did is, I iterated the source array and passed Json nodes into destination array if file name is not equal to '3.jpg'. You can replace srcArr by destArray again to have result into original JSON.
shorter than Nemoy's answer
(function (myArr, fileName) {
for (var i =0; i < myArr.length; i++) {
if (myArr[i].filename === fileName) {
myArr.splice(i, 1);
return;
}
}
})(srcArr, "3.jpg");
This will do the trick. Could be nicer using jQuery.
for( var i in demo ) {
if(demo[i].filename === "3.jpg") {
delete demo[i];
}
}
Ok I got a few good answers What I did end up going with is the below code. as the splice option keeps from a null node being added in place of the node I want to remove. Plus it is the cleanest option I could find. This is a mixture of the codes that were provided here so I believe everyone really did provide good information.
for (var i in picturearr) {
if (picturearr[i].filename === n) {
picturearr.splice(i, 1);
}
}