如何从数组中删除对象
How to remove object from a array?
我试图从数组中删除对象,我已经尝试过了,似乎没有得到正确的。谁能看看我用
写的代码代码:
文件内部数组->
[{
"favouriteLinkContent": "Group",
"favouriteLinkID": "groupBTNFav"
}, {
"favouriteLinkContent": "Server",
"favouriteLinkID": "serverBTNFav"
}, {
"favouriteLinkContent": "User",
"favouriteLinkID": "userBTNFav"
}, {
"favouriteLinkContent": "Sync",
"favouriteLinkID": "syncBTNFav"
}]
$(document).on('click', '.removeFavourite', function ()
{
var buttonValue = $(this).closest('a')[0].innerText;
// Reading
$.ajax(
{
global: false,
type: "POST",
cache: false,
dataType: "json",
data: (
{
action: 'read'
}),
url: 'php/saveFavouriteLinks.php',
success: function (data)
{
$.each(data, function (key, value)
{
newValue = ' ' + value['favouriteLinkContent'];
if (newValue == buttonValue)
{
console.log(value['favouriteLinkContent']);
delete value['favouriteLinkContent'];
}
//$("#favouritesList").append("<li><a id=" + value['favouriteLinkID'] + "><i class='fa fa-dashboard fa-fw'></i> " + value['favouriteLinkContent'] + "<i class='glyphicon glyphicon-minus pull-right removeFavourite'></i></a></li>");
});
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
我想要的示例
Button Click -> Button值为Group -> Remove Group from Array ->
{"favouriteLinkContent":"Group","favouriteLinkID":"groupBTNFav"}
->删除后->
[{
"favouriteLinkContent": "Server",
"favouriteLinkID": "serverBTNFav"
}, {
"favouriteLinkContent": "User",
"favouriteLinkID": "userBTNFav"
}, {
"favouriteLinkContent": "Sync",
"favouriteLinkID": "syncBTNFav"
}]
你可以使用数组过滤器的辅助函数:
var removeObjectFromArray = function(array, property, objName){
return array.filter(function(e){
return e[property] != objName;
});
}
console.log(removeObjectFromArray(array, 'favouriteLinkContent', 'Group'));
JSFiddle
可以使用splice
for(var i=0;i<arr.length;i++){
if(arr[i].favouriteLinkContent === "Group"){ // <---- if you want to remove Group
array.splice(i, 1);
i--; // <--- have to do i-- because splice changes the array and array size will be altered
}
}
可以将其封装在函数中,并根据
项从数组中删除该元素。removeElement(arr, "Group");
function removeElement(arr, item) {
for (var i = 0; i < arr.length; i++) {
if (arr[i].favouriteLinkContent === item) {
array.splice(i, 1);
i--;
}
}
}
您可以使用过滤器功能https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_objects/Array/filter
function removeGroup (arr, groupName) {
return arr.filter(function (el) {return el.favouriteLinkContent !== groupName;});
}
希望有帮助,丹
相关文章:
- 解析JSON并从中删除对象会出错
- 在特定条件下从存储在localStorage中的阵列中删除对象
- Es6:能够在设置/更新/删除对象属性时调用自定义方法
- 正在从列表中删除对象
- 删除对象时终止setInterval
- 在JavaScript中高效地删除对象
- 使用javascript(ajax,jquery?)从表中删除对象(用户等)
- 从范围中删除对象时,它会在 Angularjs 中隐藏其余对象
- 如何正确地从数组中删除对象
- 捕捉.svg — 单击其中一个元素时删除对象
- 如何删除对象数组中的对象:jquery
- 下划线.js,根据键值删除对象数组中的重复项
- 如何在Immutable中从数组中删除对象
- 删除对象属性在执行删除操作之前生效
- 使用indexOf从列表中删除对象
- 从数组中删除对象
- 如何使用.bind(this)删除对象的事件侦听器
- 正在创建事件侦听器以从本地存储中删除对象
- 如何通过引用(javascript)从数组中删除对象
- 如何按条件删除对象中的对象