比较两个数组并在 SWIFT 3 中找到不常见元素的索引

贝拉

数组是 String 类型由于加""比较费时间,所以我把它写成Int。对不起。

我有两个数组说var array1 = [[1,2,3,4,5,6,7,8,9]]

var array2 = [[1,2,3,4],
              [2,3,4,5],
              [2,4,5,6],
              [1,2,3,4,5,6,7,8,9],
              [1,2,3,4,5,6,7,8],
              [2,3,4,5,6,7,8]]

我必须比较array2with 的每个数组元素,array1并在元素不匹配的地方插入“-”。像这样,

var array2 = [[1,2,3,4,-,-,-,-,-],
              [-,2,3,4,5,-,-,-,-],
              [-,2,-,4,5,6,-,-,-],
              [1,2,3,4,5,6,7,8,9],
              [1,2,3,4,5,6,7,8,-],
              [-,2,3,4,5,6,7,8,-]]

我尝试遍历 array2 中的每个数组并将其与 array1 进行比较,比较索引并将 '-' 插入到索引位置i,但我得到了意想不到的结果。

更新

 for item in array2{
var elementsArray = item
for i  in stride(from: 0, to: elementsArray.count, by: 1) {
    if elementsArray[i] != array1[i]
    {
        elementsArray.insert("-", at: i)
    }
    print("elemnt array.....", elementsArray, "\n\n")
}
}

我曾想过将每个 array2 数组与 array1 by 进行比较count,找到不常见元素的索引,然后在该索引位置插入“-”。这种做法对吗?请帮我解决一下这个。

马丁·R

您需要一个新数组,其中的每一行都array2被 的变体替换array1,而该行中原本不存在的元素被替换为“-”:

let array1 = [1,2,3,4,5,6,7,8,9]
let array2 = [[1,2,3,4],
              [2,3,4,5],
              [2,4,5,6],
              [1,2,3,4,5,6,7,8,9],
              [1,2,3,4,5,6,7,8],
              [2,3,4,5,6,7,8]]

let filled = array2.map { row in 
    array1.map {
        row.contains($0) ? String($0) : "-"
    }
}

for row in filled { print(row) }

输出:

["1", "2", "3", "4", "-", "-", "-", "-", "-"] 
["-", "2", "3", "4", "5", "-", "-", "-", "-"] 
["-", "2", "-", "4", "5", "6", " -", "-", "-"] 
["1", "2", "3", "4", "5", "6", "7", "8", "9"] 
[" 1", "2", "3", "4", "5", "6", "7", "8", "-"] 
["-", "2", "3", "4" ", "5", "6", "7", "8", "-"]

对于大型数组,这可以通过创建一个Set(row)更快的包含检查来改进,或者通过利用元素按递增顺序排列。

您的方法无法正常工作,因为elementsArray在对其进行迭代时进行了修改。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Java中从两个不同的数组列表对象中找到不常见的通用所有元素

来自分类Dev

如何比较两个数组并在Clickhouse中找到数组中的匹配项(0/1)

来自分类Dev

如何比较两个数组并在Clickhouse中找到数组中的匹配项(0/1)

来自分类Dev

改进两个数组 Swift 的比较

来自分类Dev

Swift 3比较数组索引

来自分类Dev

比较两个数组并在JS中显示错误的索引

来自分类Dev

比较不同结构的两个数组,并在PHP中查找元素

来自分类Dev

使用 PHP 比较两个数组并将不常见的字符串存储在新数组中

来自分类Dev

比较两个数组中的元素

来自分类Dev

Python:比较两个数组的元素

来自分类Dev

如何在Swift iOS中比较两个数组并从一个数组中删除匹配元素

来自分类Dev

如何在Python中找到没有重复的两个数组中最接近的元素,并在Python中返回两个数组的索引?

来自分类Dev

比较两个array-list元素并获得不常见的元素

来自分类Dev

如何比较两个数组对象 - Swift 4

来自分类Dev

比较as3中的两个数组

来自分类Dev

Python:在相应的两个列表中找到最常见的元素

来自分类Dev

通过索引比较两个数组索引的差异

来自分类Dev

如果找到匹配项,则比较两个数组

来自分类Dev

如何比较两个数组然后返回差异的索引?

来自分类Dev

索引不匹配时如何比较两个数组

来自分类Dev

通过比较两个数组基于索引映射键

来自分类Dev

如何使用for循环逐个元素比较两个数组?

来自分类Dev

在C中逐个元素比较两个数组

来自分类Dev

自动-比较两个数组的每个元素

来自分类Dev

比较两个数组以查找Ruby中缺少的元素

来自分类Dev

Mongo DB比较两个数组并添加缺少的元素

来自分类Dev

比较JavaScript中两个数组的元素

来自分类Dev

比较两个数组中的元素javascript

来自分类Dev

如何使用for循环逐个元素比较两个数组?

Related 相关文章

  1. 1

    在Java中从两个不同的数组列表对象中找到不常见的通用所有元素

  2. 2

    如何比较两个数组并在Clickhouse中找到数组中的匹配项(0/1)

  3. 3

    如何比较两个数组并在Clickhouse中找到数组中的匹配项(0/1)

  4. 4

    改进两个数组 Swift 的比较

  5. 5

    Swift 3比较数组索引

  6. 6

    比较两个数组并在JS中显示错误的索引

  7. 7

    比较不同结构的两个数组,并在PHP中查找元素

  8. 8

    使用 PHP 比较两个数组并将不常见的字符串存储在新数组中

  9. 9

    比较两个数组中的元素

  10. 10

    Python:比较两个数组的元素

  11. 11

    如何在Swift iOS中比较两个数组并从一个数组中删除匹配元素

  12. 12

    如何在Python中找到没有重复的两个数组中最接近的元素,并在Python中返回两个数组的索引?

  13. 13

    比较两个array-list元素并获得不常见的元素

  14. 14

    如何比较两个数组对象 - Swift 4

  15. 15

    比较as3中的两个数组

  16. 16

    Python:在相应的两个列表中找到最常见的元素

  17. 17

    通过索引比较两个数组索引的差异

  18. 18

    如果找到匹配项,则比较两个数组

  19. 19

    如何比较两个数组然后返回差异的索引?

  20. 20

    索引不匹配时如何比较两个数组

  21. 21

    通过比较两个数组基于索引映射键

  22. 22

    如何使用for循环逐个元素比较两个数组?

  23. 23

    在C中逐个元素比较两个数组

  24. 24

    自动-比较两个数组的每个元素

  25. 25

    比较两个数组以查找Ruby中缺少的元素

  26. 26

    Mongo DB比较两个数组并添加缺少的元素

  27. 27

    比较JavaScript中两个数组的元素

  28. 28

    比较两个数组中的元素javascript

  29. 29

    如何使用for循环逐个元素比较两个数组?

热门标签

归档