将脚本src存储在数组中

时间:2018-03-19 09:58:32

标签: javascript arrays

我正在加载所有资产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})
 });

但是如何将它们像图像一样存储在一个对象中而不是单独推送它们。

2 个答案:

答案 0 :(得分:1)

您将{js: []}推入resources 一次,然后将脚本推送到js属性值的数组中。

(虽然这样做没有多大意义,resources作为具有imagesjs属性而不是数组的对象可能会更好

答案 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" ) );