我正在加载所有资产js
& css
来自下一页,并将它们存储在Array
中,但我forEach循环遍历文档并立即存储javascript链接,如下所示:
0:{images: Array(61)}
1:{js: script}
2:{js: script}
3:{js: script}
4:{js: script}
5:{js: script}
6:{js: script}
etc...
这是循环:
[].forEach.call( document.querySelectorAll("script[src]"), function( src ) {
console.log( src );
resources.push({js: src})
});
但是如何将它们像图像一样存储在一个对象中而不是单独推送它们。
答案 0 :(得分:1)
您将{js: []}
推入resources
一次,然后将脚本推送到js
属性值的数组中。
(虽然这样做没有多大意义,resources
作为具有images
和js
属性而不是数组的对象可能会更好
答案 1 :(得分:0)
你可以做到
resources.push( {js : [ ...document.querySelectorAll( "script[src]" ) ] } );
或者更好的是,如果您可以将它们设置为resource
(对象而不是数组)的属性,而不是
resource = {};
resources.js = [ ...document.querySelectorAll( "script[src]" ) ];
resources.images = [ ...document.querySelectorAll( "img" ) ];
适用于旧版浏览器
var toArray = function( arrLike ){ return [].slice.call( arrLike ) };
resource = {};
resources.js = toArray( document.querySelectorAll( "script[src]" ) );
resources.images = toArray( document.querySelectorAll( "img" ) );