Arrays 在不使用基础对象的情况下获取索引对象方法

Arrays 在不使用基础对象的情况下获取索引对象方法,arrays,swift,Arrays,Swift,通过选择1st tableView row/section我想检查所选项目是否已经在2nd tableView中,如果是,则在2nd tableView中查找所选项目indexOfObject NSInteger sectionIndex = [[allSelectedProducts valueForKey:@"productID"] indexOfObject:[allProductData[indexPath.section] valueForKey:@"productID"]]; 这将

通过选择1st tableView row/section我想检查所选项目是否已经在2nd tableView中,如果是,则在2nd tableView中查找所选项目indexOfObject

NSInteger sectionIndex = [[allSelectedProducts valueForKey:@"productID"] indexOfObject:[allProductData[indexPath.section] valueForKey:@"productID"]];
这将返回allSelectedProducts中选定对象的索引,返回其对应数组值等于给定对象的最低索引

我想在swift中执行同样的任务,我如何才能做到这一点

在Swift中,我为第一个tableView选择了
allSelectedProducts
,为第二个tableView选择了
allProductData
,这两个数组都是
Array
类型

< P> >我想在不使用基础类<强>的情况下执行这个任务<强>,我们可以在<代码>数组< <代码>中执行相同的任务吗?p>
let productIndex = allSelectedProducts.indexOf(<#T##predicate: ([String : Any]) throws -> Bool##([String : Any]) throws -> Bool#>)
let productIndex=allSelectedProducts.indexOf(Bool###([String:Any])抛出->Bool#>)
如果可以,那怎么办? 请指导我如何在swift中使用
indexOf


thanx提前获得任何帮助

可能是这样的:

let searchedProductID = allProductData[indexPath.section]["productID"]
let index = allSelectedProducts.indexOf { $0["productID"] == searchedProductID }

这是您原始代码的直接翻译

我改进了您的问题,但仍然不太清楚。不要犹豫,使用按钮进一步改进它。此外,请避免使用textspeak,Stack Overflow不是聊天应用程序,请慢慢正确键入单词。谢谢。谢谢Eric D的编辑。如果你已经使用了<代码>数组< /c> > s,那么为什么不使用基础对象类型?不清楚问题是什么。既然你知道
indexOf
,为什么不使用它呢?@n我想用一种纯粹快捷的方式使用swift数组…
让index=allSelectedProducts.indexOf(searchedProductID)
@NRitH我不这么认为,因为
allSelectedProducts
有字典。更好的解决方案是将字典解析为对象,并定义
=
来使用
productId
;你说得对。然后让selectedProduct=allSelectedProducts[indexPath.section];让index=allProductData.indexOf(product)@Sulthan其给定的
二进制运算符“==”不能应用于两个“任意”操作数