相关疑难解决方法(0)

如何循环或枚举JavaScript对象?

我有一个像以下JavaScript对象:

var p = {
    "p1": "value1",
    "p2": "value2",
    "p3": "value3"
};
Run Code Online (Sandbox Code Playgroud)

现在我想通过所有回路p元素(p1,p2,p3...),并得到他们的键和值.我怎样才能做到这一点?

如有必要,我可以修改JavaScript对象.我的最终目标是遍历一些键值对,如果可能的话,我想避免使用eval.

javascript each loops

2704
推荐指数
38
解决办法
180万
查看次数

lodash和下划线之间的差异

为什么有人更喜欢lodash.jsunderscore.js实用程序库而不是另一个?

Lodash似乎是下划线的替代品,后者已经存在了更长时间.

我认为两者都很精彩,但我对他们如何努力进行有根据的比较并不了解,我想更多地了解这些差异.

javascript underscore.js lodash

1566
推荐指数
9
解决办法
31万
查看次数

1047
推荐指数
2
解决办法
91万
查看次数

如果某个数组索引中存在某个值,如何检入JavaScript?

这是否可用于测试位置"索引"的值是否存在,或者是否有更好的方法:

if(arrayName[index]==""){
     // do stuff
}
Run Code Online (Sandbox Code Playgroud)

javascript arrays

513
推荐指数
9
解决办法
124万
查看次数

Array.prototype.includes与Array.prototype.indexOf

除了提高可读性之外,还有什么优势可以includes结束indexOf?他们看起来和我一模一样.

这有什么区别

var x = [1,2,3].indexOf(1) > -1; //true
Run Code Online (Sandbox Code Playgroud)

还有这个?

var y = [1,2,3].includes(1); //true
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-7

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

for..in和hasOwnProperty

可能重复:
如何查看对象在Javascript中是否具有属性?

我在Twitter的JS文件中找到了以下代码段.我想知道他们为什么需要调用hasOwnProperty函数看到dictkey财产?for循环正在为'dict'中的每个'key'运行,这意味着'dict'有'key',我错过了一个点吗?

function forEach(dict, f) {
    for (key in dict) {
        if (dict.hasOwnProperty(key))
            f(key, dict[key]);
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript

62
推荐指数
3
解决办法
4万
查看次数

JavaScript可能的意外迭代

我有以下代码:

  for (i in awards) {
         if (awards[i] instanceof Array === false) {
               console.log(awards[i]);
                httpFactory.patch(awards[i], {"read": true}, false);
             }
       }
Run Code Online (Sandbox Code Playgroud)

我的IDE显示与上述代码相关的此错误:

可能对意外(自定义/继承)成员进行迭代,可能缺少hasOwnProperty检查

检查JavaScript中未过滤的for-in循环的任何实例.使用此构造会导致处理继承或意外的属性.您需要使用hasOwnProperty()方法过滤自己的属性.验证适用于JavaScript,html或jsp文件.

你能更详细地解释一下这个陈述的含义吗?

javascript

60
推荐指数
4
解决办法
3万
查看次数

如何在javascript数组中按键和值查找对象的索引

鉴于:

var peoples = [
  { "attr1": "bob", "attr2": "pizza" },
  { "attr1": "john", "attr2": "sushi" },
  { "attr1": "larry", "attr2": "hummus" }
];
Run Code Online (Sandbox Code Playgroud)

通缉:

对象索引attr === value例如attr1 === "john"attr2 === "hummus"

更新: 请仔细阅读我的问题,我不想通过$ .inArray找到对象,也不想获取特定对象属性的值.请考虑这个以获得答案.谢谢!

javascript jquery

51
推荐指数
4
解决办法
12万
查看次数

递归循环遍历对象以构建属性列表

情况:我有一个包含多个子和子子对象的大对象,其属性包含多种数据类型.出于我们的目的,此对象看起来像这样:

var object = {
    aProperty: {
        aSetting1: 1,
        aSetting2: 2,
        aSetting3: 3,
        aSetting4: 4,
        aSetting5: 5
    },
    bProperty: {
        bSetting1: {
            bPropertySubSetting : true
        },
        bSetting2: "bString"
    },
    cProperty: {
        cSetting: "cString"
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要循环遍历此对象并构建显示层次结构的键列表,因此列表最终看起来像这样:

aProperty.aSetting1
aProperty.aSetting2
aProperty.aSetting3
aProperty.aSetting4
aProperty.aSetting5
bProperty.bSetting1.bPropertySubSetting
bProperty.bSetting2
cProperty.cSetting
Run Code Online (Sandbox Code Playgroud)

我有这个函数,它循环遍历对象并吐出密钥,但不是分层次的:

function iterate(obj) {
    for (var property in obj) {
        if (obj.hasOwnProperty(property)) {
            if (typeof obj[property] == "object") {
                iterate(obj[property]);
            }
            else {
                console.log(property + "   " + obj[property]);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有人能告诉我怎么做吗?这里有一个jsfiddle让你搞砸:http: …

javascript object

50
推荐指数
5
解决办法
7万
查看次数

Javascript IN运算符兼容性

有人可以告诉我,哪个ECMA版本的IN运算符可用以及哪些浏览器(版本)支持它?

说明:

IN运算符可以像下面这样使用:

var myObject = {
    Firstname: 'Foo',
    Lastname: 'Bar'
};

if('Lastname' in myObject){
    // Lastname is an attribute of myObject
}
Run Code Online (Sandbox Code Playgroud)

javascript ecma262

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