Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从storage.local获取所有对象,对它们进行排序,创建元素_Javascript_Google Chrome Extension - Fatal编程技术网

Javascript 从storage.local获取所有对象,对它们进行排序,创建元素

Javascript 从storage.local获取所有对象,对它们进行排序,创建元素,javascript,google-chrome-extension,Javascript,Google Chrome Extension,在我的chrome扩展中,我执行http请求以获取JSON,解析它并将数据保存在chrome.storage.local中。当用户单击扩展按钮时,将打开一个新选项卡,并使用来自本地存储的数据(表中的TR元素)填充元素。这很有效 但是,我希望元素能够基于其中一个值以特定的顺序排列(将来可能会让用户根据用户的需要进行排序) 目前,在创建元素时,我正在遍历所有键: storage.get(null, function(items) { var allKeys = Object.keys(ite

在我的chrome扩展中,我执行http请求以获取JSON,解析它并将数据保存在chrome.storage.local中。当用户单击扩展按钮时,将打开一个新选项卡,并使用来自本地存储的数据(表中的TR元素)填充元素。这很有效

但是,我希望元素能够基于其中一个值以特定的顺序排列(将来可能会让用户根据用户的需要进行排序)

目前,在创建元素时,我正在遍历所有键:

storage.get(null, function(items) {
    var allKeys = Object.keys(items);
    allKeys.forEach(function(key) {
        var result = /(?:^\d+$|kek)/.test(key);
        if (result) {
            //create appropriate elements;
        }
    });
});
我猜解决方案应该是将所有对象放入一个数组,对数组进行排序,然后循环创建元素

如果这是最好的方法,那么我没有找到的是如何将chrome.storage.local中的所有对象放到一个数组中

编辑:存储中保存的数据如下所示:

44: // this is the key
csURL: "https://www.randomurl.com"
nURL: "http://www.randomurl2.com"
r: "82" // this is what I want all the objects sorted by
rc: "3079"
t: "stuff"
y: "1234"
__proto__: Object

问题中有很多信息,这似乎是无关的,唯一的问题似乎是排序,对吗?要获得帮助,您应该显示数据的示例和/或结构。
storage.set(“allMyStuff”,/**/)
->
storage.get(“allMyStuff”)
storage.get(null,函数(items){items.sort(函数(a,b){if(a.field1b.field1){return 1;}return 0;})@wOxxOm我用示例存储条目更新了帖子。@LDS感谢您的示例,但是我得到了
项。排序不是一个函数
错误。