我必须获取数组中多次存在的值的列表。这是当前的代码,但正如您所看到的,它太复杂了。
var arr = [1, 2, 3, 4, 2, 3];
var flag = {}
var exist2arr = [];
for(var i = 0; i < arr.length; i++){
for(var j = 0 ; j < arr.length; j ++){
if(i !=j && arr[i] == arr[j]){
if(!flag[arr[i]])
exist2arr.push(arr[i]);
flag[arr[i]] = 1;
}
}
}
console.log(exist2arr);Run Code Online (Sandbox Code Playgroud)
有没有其他方法(使用javascript内置函数的简单代码)来实现这一点?任何形式的帮助表示赞赏。
好的,这里的three.js非常新,但我想通过https://beinternetawesome.withgoogle.com/interland实现Google的目标
看 - 他们有他们的FULL SCREEN Three.js场景和他们的文本,按钮(显然是HTML div,不是通过JS生成的)完全覆盖在顶部.
我查看了 https://discourse.threejs.org/t/trying-to-overlay-a-button-and-text-on-top-of-a-three-js-scene/390/2
和类似的问题,但无法理解这样做的正确方法.我不想在Three.js中生成我的UI元素 - 我只想使用HTML.
到目前为止,我生成了我的Three.js画布并将其添加到我的文档中,以便它获取并保持窗口的整个宽度/高度:
var controls, camera, renderer, scene, container, w, h;
renderer = new THREE.WebGLRenderer()
// container = document.getElementById('canvas');
container = window;
w = container.innerWidth;
h = container.innerHeight;
renderer.setSize(w, h)
renderer.setPixelRatio( window.devicePixelRatio );
document.body.appendChild(renderer.domElement);
Run Code Online (Sandbox Code Playgroud)
然后使用我现有的HTML:
<body>
<div id="ui">
<p id="message">Test to change</p>
</div>
Run Code Online (Sandbox Code Playgroud)
无论我如何使用CSS div或UI div的z索引,我都会将UI div卡在最上面:
如何通过覆盖在我的three.js场景上的HTML来实现Google效果?我究竟做错了什么?
我需要我的画布像Google一样填充整个窗口,并且无法实现预先制作画布HTML元素并尝试在JS中附加所有内容.