如何将数组中的值推送到铬存储中?

数组推送函数正在创建嵌套数组,而不是将值放入索引。它在项中创建嵌套项,而不是将其添加到数组的索引中。我试了很多方法,但没有找到问题所在。 我想在每个索引中添加数组,这样我就可以检索它并创建它的CSV。 我想要这样的输出:Item[0]=[标题,描述,价格,图像] 项目1=[标题、描述、价格、图片]等,根据输入的值 以下是我的js:

    $(function(){
        var title='';
            var price='';
            var description='';
            var image='';
            var i=0;
            var product =[];
            var products=[];
        $("#scrape").click(function(){
            chrome.storage.sync.get(["key"],function(result){
                if(result.key!=undefined){  
                    i=result.key;
                }
            });
        chrome.tabs.query({active:true,currentWindow:true},function(tabs){
            chrome.tabs.sendMessage(tabs[0].id,{todo:"fetch"},function(response){
                     description =response.description;
                     title=response.title;
                     image=response.image;
                     price=response.price;
                     product=[title,price,image,description];
                chrome.storage.sync.get(function(item){
                    if(item["products"] != undefined){
                        item["products"].push(product);
                    }
                    else{
                        item["products"]=product;
                    }
                    //console.log(item);
                    chrome.storage.sync.set({item});
                    i=i+1;
             });
            });
        });
    });
});

enter image description here


解决方案

将存储视为具有键和值的标准JS对象。在您的例子中,使用像products这样的键是有意义的,它将是一个标准的JS数组。使用chrome.store的唯一概念区别在于,您需要分别读写该值。

$('#scrape').click(function () {
  chrome.tabs.query({active: true, currentWindow: true}, tabs => {
    chrome.tabs.sendMessage(tabs[0].id, {todo: 'fetch'}, response => {
      chrome.storage.sync.get('products', ({products = []}) => {
        products.push([
          response.title,
          response.price,
          response.image,
          response.description,
        ]);
        chrome.storage.sync.set({products});
      });
    });
  });
});

相关文章