जवाबों:
जैसा कि आप जावास्क्रिप्ट में होगा।
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);