如何在Swift中将数组中的值替换为相同索引处的新值。

huangapple go评论108阅读模式
英文:

How to replace array values with new value in same index in swift

问题

I am showing dropdown in tableview cell here if i select one value from from dropdown i need to replace that selected value in existing array index

for eg: i got array like this

  1. before array ----- ["12-R", "14-R", "13-R"]

here is my dropdown button code: initially here arrSelectedRowsBuyNew

  1. func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  2. let cell = tableView.dequeueReusableCell(withIdentifier: "EventslistPopupCell", for: indexPath) as! EventslistPopupCell
  3. cell.actionBlock = { tapAct in
  4. self.showDropDown(with: strArray, from: tapAct) { (item, index) in
  5. cell.dropdownTF.text = item
  6. if index == 0{
  7. self.arrSelectedRowsBuyNew.append(self.popupData[indexPath.row].selectedID.description + "-R")
  8. }
  9. if index == 1{
  10. self.arrSelectedRowsBuyNew.append(self.popupData[indexPath.row].selectedID.description + "-V")
  11. }
  12. print("after array \(self.arrSelectedRowsBuyNew)")
  13. }
  14. }
  15. return cell
  16. }

for above code o/p: here i need to replace "12-R" with "12-V" and "14-R" with "14-V" here how to check the index and replace the new value

NOTE: here first two digits will be same for old and new array. so can we check and replace with that. first two digits coming from this self.popupData[indexPath.row].selectedID

please do help got stuck here from long time

after array ["12-R", "14-R", "13-R", "14-V", "12-V"]

EDIT:

before replace array before array ----- ["12-R", "14-R"]

initially all values at index 0

now if i select value from first cell dropdown then its replacing like this

error:

["12-R", "12-V"]

but i need like ["12-V", "14-R"]

英文:

I am showing dropdown in tableview cell here if i select one value from from dropdown i need to replace that selected value in existing array index

for eg: i got array like this

  1. before array ----- ["12-R", "14-R", "13-R"]

here is my dropdown button code: initially here arrSelectedRowsBuyNew

  1. func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  2. let cell = tableView.dequeueReusableCell(withIdentifier: "EventslistPopupCell", for: indexPath) as! EventslistPopupCell
  3. cell.actionBlock = { tapAct in
  4. self.showDropDown(with: strArray, from: tapAct) { (item, index) in
  5. cell.dropdownTF.text = item
  6. if index == 0{
  7. self.arrSelectedRowsBuyNew.append(self.popupData[indexPath.row].selectedID.description + "-" + "R")
  8. }
  9. if index == 1{
  10. self.arrSelectedRowsBuyNew.append(self.popupData[indexPath.row].selectedID.description + "-" + "V")
  11. }
  12. print("after array \(self.arrSelectedRowsBuyNew)")
  13. }
  14. }
  15. return cell
  16. }

for above code o/p: here i need to replace "12-R" with "12-V" and "14-R" with "14-V" here how to check the index and replace the new value

NOTE: here first two digits will be same for old and new array. so can we check and replace with that. first two digits coming from this self.popupData[indexPath.row].selectedID

please do help got stuck here from long time

> after array ["12-R", "14-R", "13-R", "14-V", "12-V"]

EDIT:

before replace array before array ----- ["12-R", "14-R"]

initially all values at index 0

now if i select value from first cell dropdown then its replacing like this

error:

>["12-R", "12-V"]

but i need like ["12-V", "14-R"]

答案1

得分: 1

I'm not sure I fully understand your question but I think you need to replace the line:

  1. self.arrSelectedRowsBuyNew.append(self.popupData[indexPath.row].selectedID.description + "-" + "A")

with:

  1. self.arrSelectedRowsBuyNew[index] = self.popupData[indexPath.row].selectedID.description + "-" + "A"

Your use of append is adding the new value to the array. If you want to replace a value then simply assign a new value at the desired index.

英文:

I'm not sure I fully understand your question but I think you need to replace the line:

  1. self.arrSelectedRowsBuyNew.append(self.popupData[indexPath.row].selectedID.description + "-" + "A")

with:

  1. self.arrSelectedRowsBuyNew[index] = self.popupData[indexPath.row].selectedID.description + "-" + "A"

Your use of append is adding the new value to the array. If you want to replace a value then simply assign a new value at the desired index.

huangapple
  • 本文由 发表于 2023年5月11日 02:07:28
  • 转载请务必保留本文链接:https://go.coder-hub.com/76221436.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定