es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo eliminar el elemento del diccionario de una matriz por su valor de nombre

Tengo una lista de matrices de nombres y URL. Quiero eliminarlos de

// Obtener matriz de lista de nombres

var nameList = self.getNameListData()

// Eliminar objeto en valor de índice
nameList.remove(at: 0)

// Eliminar elemento para elemento especificado

¿Cómo eliminar un elemento por valor de nombre?

Esto es lo que intenté, no funciona para mí.

if let index = nameList.firstIndex(where: {$0 as? String == “Kiran”}) {
nameList.remove(at: index)
}

¿Hay alguna manera de eliminar un elemento de una matriz de JSONDictionary, es decir, [[String: Any]]?

Da la siguiente advertencia

La conversión de ‘JSONDictionary’ (también conocida como ‘Dictionary<string, any=””>’) a un tipo no relacionado ‘String’ siempre falla
La conversión de ‘JSONDictionary’ (también conocida como ‘Dictionary<string, any=””>’) a un tipo no relacionado ‘String’ siempre falla
El recuento de resultados es 3.</string,></string,>

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para eliminar un elemento por un valor de nombre específico de una matriz de JSONDictionaries [[String:Any]], puede utilizar el método filter para crear una nueva matriz sin el elemento con el nombre especificado. Aquí tienes un ejemplo:

    let nameToRemove = "Kiran"
    nameList = nameList.filter { ($0["name"] as? String) != nameToRemove }
    

    Esto creará una nueva matriz nameList que excluye el diccionario con el nombre “Kiran”. El método filter recorre cada diccionario en la matriz y solo incluye aquellos que no tienen el valor de nombre especificado.

    Asegúrese de asignar el resultado de filter a una variable, ya que devuelve una nueva matriz. Este método no muta la matriz original.

    La advertencia que recibió se debió a que intentó convertir el diccionario a una cadena con as? String. En su lugar, debe acceder al valor de la clave “name” en el diccionario con $0["name"] y luego convertir ese valor en una cadena con as? String.

Comments are closed.