जवाबों:
जैसा कि आप जावास्क्रिप्ट में होगा।
delete myArray[key];
ध्यान दें कि यह तत्व को सेट करता है undefined
।
Array.prototype.splice
समारोह का उपयोग करने के लिए बेहतर :
const index = myArray.indexOf(key, 0);
if (index > -1) {
myArray.splice(index, 1);
}
indexOf
रिटर्न के रूप में अनुमानित रूप से टाइप किया जाएगा number
?
index
पहले से ही एक से अधिक बार उपयोग कर रहे हैं और उन स्थानों में से एक ( splice
) एक नंबर देखना चाहते हैं या आपको एक त्रुटि मिलेगी। वर्तमान में कंपाइलर आपको वहां गलतियाँ करने से नहीं रोक सकता।
var index = myArray.findIndex(x => x.prop==key.prop);
।
delete myArr[2]
वस्तुतः की संपत्ति 2
को हटा देती है myArr
, जो इससे भिन्न भी है myArr[2] = undefined
। इस कहानी का नैतिक सिर्फ splice
इस कार्य के लिए उपयोग करना है क्योंकि यह साइड इफेक्ट्स को भ्रमित किए बिना वांछित प्रभाव प्राप्त करने का एक सुरक्षित तरीका है।
यदि सरणी वस्तुओं का प्रकार है, तो सबसे सरल तरीका है
let foo_object // Item to remove
this.foo_objects = this.foo_objects.filter(obj => obj !== foo_object);
this.foo_objects = this.foo_objects.filter(obj => obj !== foo_object)[0];
deleteById(id: string) { this.data = this.data.filter(d => d.id !== id); }
, चेतावनी का सिर्फ एक शब्द, अगर Ids अद्वितीय नहीं हैं तो आप सभी को समान रूप से हटा देंगेid
ES6 के साथ आप इस कोड का उपयोग कर सकते हैं:
removeDocument(doc){
this.documents.forEach( (item, index) => {
if(item === doc) this.documents.splice(index,1);
});
}
यह उस के लिए मेरा समाधान है:
onDelete(id: number) {
this.service.delete(id).then(() => {
let index = this.documents.findIndex(d => d.id === id); //find index in your array
this.documents.splice(index, 1);//remove element from array
});
event.stopPropagation();
}
आप splice
तत्वों को निकालने के लिए एक सरणी पर विधि का उपयोग कर सकते हैं ।
उदाहरण के लिए यदि आपके पास नाम के साथ एक सरणी है, arr
तो निम्नलिखित का उपयोग करें:
arr.splice(2, 1);
इसलिए यहां इंडेक्स 2 वाला तत्व शुरुआती बिंदु होगा और तर्क 2 यह निर्धारित करेगा कि कितने तत्वों को हटाया जाना है।
यदि आप नाम के अंतिम तत्व को हटाना चाहते हैं arr
तो ऐसा करें:
arr.splice(arr.length-1, 1);
यह हटाए गए अंतिम तत्व के साथ गिरफ्तार वापस आ जाएगा।
उदाहरण:
var arr = ["orange", "mango", "banana", "sugar", "tea"];
arr.splice(arr.length-1, 1)
console.log(arr); // return ["orange", "mango", "banana", "sugar"]
चलो विभागों एक सरणी है। आप इस सरणी से कोई आइटम निकालना चाहते हैं।
departments: string[] = [];
removeDepartment(name: string): void {
this.departments = this.departments.filter(item => item != name);
}
यहाँ वस्तुओं के एक सरणी से संपत्ति द्वारा एक वस्तु को हटाने के लिए एक सरल एक लाइनर है।
delete this.items[this.items.findIndex(item => item.item_id == item_id)];
या
this.items = this.items.filter(item => item.item_id !== item.item_id);
टाइपस्क्रिप्ट स्प्रेड ऑपरेटर (...) का उपयोग करके उत्तर दें
// Your key
const key = 'two';
// Your array
const arr = [
'one',
'two',
'three'
];
// Get either the index or -1
const index = arr.indexOf(key); // returns 0
// Despite a real index, or -1, use spread operator and Array.prototype.slice()
const newArray = (index > -1) ? [
...arr.slice(0, index),
...arr.slice(index + 1)
] : arr;
टाइपस्क्रिप्ट का उपयोग कर एक और समाधान:
let updatedArray = [];
for (let el of this.oldArray) {
if (el !== elementToRemove) {
updated.push(el);
}
}
this.oldArray = updated;
इसका उपयोग करें, यदि आपको किसी दिए गए ऑब्जेक्ट को किसी सरणी से निकालने की आवश्यकता है और आप निम्नलिखित के बारे में सुनिश्चित होना चाहते हैं:
const objWithIdToRemove;
const objIndex = this.objectsArray.findIndex(obj => obj.id === objWithIdToRemove);
if (objIndex > -1) {
this.objectsArray.splice(objIndex, 1);
}
var index: number = myArray.indexOf(key, 0);