Tengo varias matrices que estoy usando para mi primera extensión de Chrome. Quiero usar una matriz diferente para mi extensión según el valor de una variable específica (locationVal), que es un número entre 1 y 4. Aquí está la función que decide que:
if (locationVal === 1) { arrayToUse = 'firstList'; } else if (locationVal === 2) { arrayToUse = 'secondList'; } else if (locationVal === 3) { arrayToUse = 'thirdList'; } else if (locationVal === 4) { arrayToUse = 'fourthList'; } else { console.log("setArray function error"); } chrome.storage.local.set({arrayToUse});FirstList, secondList, etc. son mis matrices, que se declaran como:
let firstList = []; let secondList = []; let thirdList = []; let fourthList = []; Lo principal que me pregunto es cómo se usará la variable arrayToUse como nombre de matriz en una configuración como esta:
chrome.storage.local.get({arrayToUse: []}, function(items) { if (!chrome.runtime.error) { arrayToUse = items.arrayToUse; } });y
chrome.storage.local.set({arrayToUse : arrayToUse}, function() { if (!chrome.runtime.error)....Creo que se está utilizando como una cadena tal como está y está causando un problema allí. Si coloco una de mis matrices directamente, el programa funciona bien.
Recomiendo usar un mapa para almacenar referencias a sus arreglos. De esta manera, puede acceder a ellos mediante un identificador de cadena, que puede ser el mismo que el nombre de la variable de una matriz en particular. Esta cadena se puede guardar en localStorage.
Algo como:
let firstList = [1, 2, 3]; let secondList = [4, 5, 6]; let map = new Map(); map.set("firstList", firstList); map.set("secondList", secondList); let arrayToUse = "secondList"; console.log(map.get(arrayToUse));