小编Ahm*_*ven的帖子

数组长度和未定义的索引

我只是想了解Javascript数组是如何工作的,但我在这里遇到了一个复杂的问题.

首先我创建了我的数组:

var arr = [];
Run Code Online (Sandbox Code Playgroud)

并在其中设置一些元素:

arr[5] = "a thing";
arr[2] = undefined;
Run Code Online (Sandbox Code Playgroud)

我认为我应该有一个大小为2的数组,因为我在2个特定索引上只有两个对象.所以我用.length数组的属性测试了它:

document.write(arr.length + "<br>");
Run Code Online (Sandbox Code Playgroud)

有趣的是,结果是6.但它必须包含两个项目.它的大小怎么样?它可能与我在这里使用的最新索引有关arr[5] = "a thing";

然后我试图循环它:

var size = 0;
for(var x in arr){
 size++;   
}
Run Code Online (Sandbox Code Playgroud)

size可变现在是2.所以,我从中学到:如果我使用一个for in循环,我会计算有多少性能是它,而不是它的最后一个索引.

但是,如果我尝试document.write(arr[4])(尚未设置),它写道undefined.

那么为什么要arr[2]计入for..in循环,但不是arr[4]

让我回答一下我的问题:我在想什么typeof undefined == undefined是非常真实的.但这是JavaScript,我们需要使用自己的规则来玩它:)

jsFiddle和片段如下.

var arr = [];

arr[5] = "a thing";
arr[2] = undefined;
document.write(arr.length + "<br>");

var size = 0; …
Run Code Online (Sandbox Code Playgroud)

javascript arrays

19
推荐指数
3
解决办法
1万
查看次数

Mongoose实例.save()不起作用

我有Mongoose和MongoDb的问题

非常有趣的是,只有Model.update工作,save永远不会工作,甚至不会发出回调.

猫鼬:4.4.5 MongoDB:3.0.8

快车道

var mongoose = require('mongoose');
mongoose.connect("mongodb://127.0.0.1:27017/db");
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function(callback) {
    console.log("connection to db open")
});
var User = require("../models/user.js");
Run Code Online (Sandbox Code Playgroud)

用户模型

var user = new Schema({
    uid: { type: Number, required: true, unique: true},
    hwid: { type: String, default:""},
    bol:{type:String,default:""}
});
Run Code Online (Sandbox Code Playgroud)

更新Enpoint

工作版本:Model.update()

User.update({_id: id}, {
    uid: 5, 
}, function(err, numberAffected, rawResponse) {
    console.log(err);
})
Run Code Online (Sandbox Code Playgroud)

不工作版本,我必须解决这个问题:Object.save()

User.find({_id:id}, function(err,user){
    if(err){
         console.log(err);
    }
    if(!user){
         console.log("No user"); …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js

18
推荐指数
4
解决办法
2万
查看次数

Facebook 受众出价不起作用:捆绑状态无效

我在 IOS 上有一个 React Native 应用程序,并且我使用 Admob 实现了 Facebook Audience Network Bidding。

一切看起来都很好;投标请求正在从 Admob 发送到 Facebook。但 Facebook 几乎没有回应出价请求。

在此处输入图片说明

当我使用调试器时,有一个名为“捆绑状态无效”的错误,互联网上的文档为零。

在此处输入图片说明

我可以毫无问题地看到测试广告。我使用 Ad Inspector 验证了所有内容,看起来不错。但生产用户无法看到任何 Facebook 广告。

SDK版本:

  • FBAudienceNetwork 6.2.1
  • Google-Mobile-Ads-SDK 7.69.0
  • GoogleMobileAdsMediationFacebook 6.2.1.0
  • GoogleMobileAdsMediationTestSuite 1.4.0

有没有关于这个问题的知识,什么是“捆绑状态无效”?

admob facebook-audience-network react-native

6
推荐指数
1
解决办法
260
查看次数

在 Java 脚本中注册变量和函数声明

我正在观看有关 javascript 作用域的视频,该视频说在浏览器解释 java 脚本代码之前,它实际上涉及一个快速编译步骤(可以这么说,不完全是“编译”,因为它不涉及创建中间文件),该步骤注册变量并函数声明在各自的作用域中。所以如果我写:

var a = 3;
function foo(){
var c = 2;
}
Run Code Online (Sandbox Code Playgroud)

在计算上述表达式之前(这意味着忽略 RHS 部分),变量“a”和函数“foo”将在全局范围内注册,在“foo”范围内,变量“c”将被注册。在此编译步骤之后,将评估表达式的值。

但是当我们这样写时会发生什么:

var a = function(){
var c;
}
Run Code Online (Sandbox Code Playgroud)

编译步骤是否只是在全局范围内注册变量“a”并跳过函数声明和变量“c”声明,因为编译步骤应该跳过 RHS 部分并且评估表达式出现在解释器部分中?

javascript variables scope global interpretation

5
推荐指数
1
解决办法
333
查看次数

C#OpenFileDialog线程启动但对话框未显示

我正在尝试完成我的静态Prompt类,以便能够从任何地方调用它.但问题是无法进行对话显示.我已经在使用[STAThread],这是我的代码.

public static string ShowFileDialog()
{
    string selectedPath = "";
    var t = new Thread((ThreadStart)(() =>
    {
        FolderBrowserDialog fbd = new FolderBrowserDialog();
        fbd.RootFolder = System.Environment.SpecialFolder.MyComputer;
        fbd.ShowNewFolderButton = true;
        if (fbd.ShowDialog() == DialogResult.OK)
        {
            selectedPath = fbd.SelectedPath;
        }
    }));
    t.SetApartmentState(ApartmentState.STA);
    t.Start();

    t.Join();
    return selectedPath;
}
Run Code Online (Sandbox Code Playgroud)

public static class Prompt是我的提示班.我是从public partial class Dashboard : Form课堂上打电话来的

谢谢你的帮助.

c# multithreading folderbrowserdialog

3
推荐指数
1
解决办法
1514
查看次数

NodeJs http.Agent 是用于每个实例还是每个主机?

我想为每个主机创建具有不同设置的连接池。

const keepAliveAgent = new http.Agent({ 
  keepAlive: true,
  maxSockets: 2,
  keepAliveMsecs: 1000 * 60 * 60
});
Run Code Online (Sandbox Code Playgroud)

当我将此代理与两个不同的主机一起使用时。假设我们有如下代码。

request({
  url: 'https://host1',
  agent: keepAliveAgent
})

request({
  url: 'https://host2',
  agent: keepAliveAgent
})
Run Code Online (Sandbox Code Playgroud)

是否有 2 个套接字专用于每个主机(总共使用 4 个套接字),或者这些主机仅使用 2 个套接字(总共使用 2 个套接字)?

文档中

maxSockets 每个主机允许的最大套接字数。每个请求都将使用一个新的套接字,直到达到最大值。默认值:无穷大。

当我读到这篇文章时,我可以理解 2 + 2 个套接字将专用于每个主机,从而总共打开 4 个套接字。

实现没有任何与此相关的代码。有人可以澄清这一点吗?

sockets node.js

3
推荐指数
1
解决办法
1252
查看次数

动态下载javascript,稍后执行

我正在尝试优化页面加载时间。剩下的唯一事情就是优化资产加载时间。我的资产和库脚本很少。一些资产依赖于这个库。

供应商脚本

  • 库.min.js
  • 供应商.min.js

捆绑脚本

  • page.bundle.js(依赖于 library.min.js)
  • play.min.js(依赖于 vendor.min.js)
  • gtm.min.js(依赖于 library.min.js)

我想要实现的是在页面完全加载时开始加载所有这些资产。当我在服务器端渲染所有内容时,延迟用户交互对我来说不是问题。我只需要下载library.min.js,然后page.bundle.js在正确的顺序,但是,当我需要

我尝试了几件事,但我无法开始下载并以正确的顺序执行它。目前我计划eval在需要时使用 xhr 和content 。但我不确定这是否是正确的方法。使用此方法时还有更多问题要问。缓存等

有人可以告诉我如何拆分动态加载的 javascript 文件的下载和执行时间吗?

html javascript browser

2
推荐指数
1
解决办法
4232
查看次数

Javascript:$('body:contains("")')和html

我想$('body:contains("")')用来搜索部分HTML代码.

例如:

var thing = $('body:contains("Web</a></td></tr>")').text()
    if(thing) {
        alert(thing);
    }
else{
    alert("not found")
        }
Run Code Online (Sandbox Code Playgroud)

此代码始终提醒"未找到".

是否可以搜索html代码的一部分并在发现时发出警报?

谢谢...

javascript firefox jquery

0
推荐指数
1
解决办法
2472
查看次数