javascript - मैं जावास्क्रिप्ट के साथ किसी सरणी से ऑब्जेक्ट को कैसे हटा सकता हूं?




arrays object (9)

मेरे पास जावास्क्रिप्ट ऑब्जेक्ट है:

id="1";
name = "serdar";

और मेरे पास एक ऐरे है जिसमें उपरोक्त कई वस्तुएं हैं। मैं उस सरणी से किसी ऑब्जेक्ट को कैसे हटा सकता हूं जैसे कि:

obj[1].remove();

var apps = [{id: 34, नाम: 'मेरा ऐप', दूसरा: 'चीज़'}, {id: 37, नाम: 'माई न्यू ऐप', दूसरा: 'चीजें'}];

// आईडी के साथ वस्तु का सूचकांक प्राप्त करें: 37

var removeIndex = apps.map (फ़ंक्शन (आइटम) {वापसी item.id;})। indexOf (37);

// वस्तु को हटा दें

apps.splice (निकालें इंडेक्स, 1);


अच्छी तरह से splice काम करता है:

var arr = [{id:1,name:'serdar'}];
arr.splice(0,1);
// []

Arrays पर delete ऑपरेटर का उपयोग न करें।

लेकिन शायद आप ऐसा कुछ चाहते हैं?

var removeByAttr = function(arr, attr, value){
    var i = arr.length;
    while(i--){
       if( arr[i] 
           && arr[i].hasOwnProperty(attr) 
           && (arguments.length > 2 && arr[i][attr] === value ) ){ 

           arr.splice(i,1);

       }
    }
    return arr;
}

बस नीचे एक उदाहरण।

var arr = [{id:1,name:'serdar'}, {id:2,name:'alfalfa'},{id:3,name:'joe'}];
removeByAttr(arr, 'id', 1);   
// [{id:2,name:'alfalfa'}, {id:3,name:'joe'}]

removeByAttr(arr, 'name', 'joe');
// [{id:2,name:'alfalfa'}]

मैं इसे थोड़ा सा उपयोग करता हूं इसलिए मैंने एक छोटा प्रोटोटाइप बनाया। बस आइटम की तलाश है तो एक मैच होने पर इसे बाहर खींचता है।

//Prototype to remove object from array, removes first
//matching object only
Array.prototype.remove = function (v) {
    if (this.indexOf(v) != -1) {
        this.splice(this.indexOf(v), 1);
        return true;
    }
    return false;
}

इस तरह कहा जा सकता है:

var arr = [12, 34, 56];
arr.remove(34);

नतीजा होगा [12, 56]

अगर कोई सफल निकाला गया तो एक बुलियन रिटर्न है, अगर तत्व मौजूद नहीं है तो झूठा है।


यदि आप इंडेक्स को जानते हैं कि ऑब्जेक्ट में सरणी के भीतर है तो आप splice () का उपयोग कर सकते हैं, जैसा कि अन्य ने उल्लेख किया है, यानी:

var removedObject = myArray.splice(index,1);
removedObject = null;

यदि आप इंडेक्स को नहीं जानते हैं तो आपको इसके लिए सरणी खोजनी होगी, यानी:

for (var n = 0 ; n < myArray.length ; n++) {
    if (myArray[n].name == 'serdar') {
      var removedObject = myArray.splice(n,1);
      removedObject = null;
      break;
    }
}

मार्सेलो


यदि यह सरणी में अंतिम वस्तु है, तो आप obj.pop() कर सकते हैं


हटाएं-कीवर्ड का प्रयोग करें।

delete obj[1];

संपादित करें: देखें: जावास्क्रिप्ट में सरणी तत्वों को हटाएं - हटाएं बनाम स्प्लिस डिलीट ऑफ़सेट को परिभाषित करेगा लेकिन प्रविष्टि को पूरी तरह से हटा नहीं देगा। डेविड ने कहा जैसे स्प्लिस सही होगा।


var arr = [{id:1,name:'serdar'}, {id:2,name:'alfalfa'},{id:3,name:'joe'}];
var ind = arr.findIndex(function(element){
   return element.id===2;
})
if(ind!==-1){
arr.splice(ind, 1)
}
console.log (arr)

कृपया ध्यान दें कि ढूँढें इंडेक्स विधि इंटरनेट एक्सप्लोरर में समर्थित नहीं है लेकिन पॉलीफिल का उपयोग here से किया जा सकता here


  //K.I.S.S. method
  //(the setup/comments is/are longer than the code)
  //cards is a two dimensional array object
  //  has an array object with 4 elements at each first dimensional index
  //var cards = new Array()
  //cards[cards.length] = new Array(name, colors, cost, type)
  //Can be constructed with Associated arrays, modify code as needed.
  //my test array has 60 'cards' in it
  //  15 'cards' repeated 4 times each
  //  groups were not sorted prior to execution
  //  (I had 4 groups starting with 'U' before the first 'A')
  //Should work with any dimensionality as long as first
  //index controls sort order

  //sort and remove duplicates
  //Algorithm:
  //  While same name side by side, remove higher entry;
  //  assumes 'cards' with same name have same other data
  //  (otherwise use cards[i-1] === cards[i] to compare array objects).
  //Tested on IE9 and FireFox (multiple version #s from 31 up).
  //Also tested by importing array data from 5MB text file.
  //Quick execution
  cards.sort()
  for (i=1; i<cards.length-1; i++){
    while (cards[i-1][0] == cards[i][0]){
       cards.splice(i,1)
    }
  }

var user = [
  { id: 1, name: 'Siddhu' },
  { id: 2, name: 'Siddhartha' },
  { id: 3, name: 'Tiwary' }
];

var recToRemove={ id: 1, name: 'Siddhu' };

user.splice(user.indexOf(recToRemove),1)




object