2016-04-18 11 views
0

Ich vergleiche zwei Arrays, und ich muss herausfinden, an welcher Position die Duplikate auftreten. Ich muss das Array zuordnen, bin mir aber nicht sicher, wie das geht. Am Ende möchte ich ein gefiltertes Array haben. 1 gibt an, dass ein Duplikat vorhanden ist, und "" gibt an, dass kein Duplikat vorhanden ist.Wie finde ich die Position eines bestimmten Wertes bei einem zweiten Array?

var Strarr = ["1", "2", "3", "4"] 
var importarr = ["1", "3"] 

filteredArray = ["1", "", "1", ""] 

Antwort

2
let result = Strarr.map { importarr.contains($0) ? "1" : ""} 

print(result) // ["1", "", "1", ""] 

Ein bisschen kürzer.

0

Dies funktioniert:

var Strarr = ["1", "2", "3", "4"] 
var importarr = ["1", "3"] 

var newArray = Strarr 
for i in 0..<Strarr.count { 
    if importarr.contains(Strarr[i]) { 
     newArray[i] = "1" 
    } 
    else{ 
     newArray[i] = "0" 
    } 
} 
print(newArray) 

druckt "["1", "0", "1", "0"]\n"

0

sollte es

var Strarr = ["1", "2", "3", "4"] 
var importarr = ["1", "3"] 
var filteredArray = Strarr.map(function(val){ 
    return importarr.indexOf(val) != -1 ? "1" : ""; 
}); 
+0

tun Dies sollte nichts tun, sondern Fehler geben ... – Eendje

Verwandte Themen