相关疑难解决方法(0)

迭代对象属性

var obj = {
    name: "Simon",
    age: "20",
    clothing: {
        style: "simple",
        hipster: false
    }
}

for(var propt in obj){
    console.log(propt + ': ' + obj[propt]);
}
Run Code Online (Sandbox Code Playgroud)

变量如何propt表示对象的属性?它不是内置方法或属性.为什么它会出现在对象中的每个属性?

javascript loops object

1904
推荐指数
24
解决办法
122万
查看次数

访问/处理(嵌套)对象,数组或JSON

我有一个包含对象和数组的嵌套数据结构.如何提取信息,即访问特定或多个值(或键)?

例如:

var data = {
    code: 42,
    items: [{
        id: 1,
        name: 'foo'
    }, {
        id: 2,
        name: 'bar'
    }]
};
Run Code Online (Sandbox Code Playgroud)

我怎么能访问name第二项items

javascript arrays nested object data-manipulation

811
推荐指数
24
解决办法
57万
查看次数

使用JavaScript遍历JSON对象树的所有节点

我想遍历一个JSON对象树,但找不到任何库.这似乎并不困难,但感觉就像重新发明轮子一样.

在XML中,有很多教程展示了如何使用DOM遍历XML树:(

javascript json

140
推荐指数
7
解决办法
20万
查看次数

浏览器Javascript堆栈大小限制

我在IE浏览器中特别得到了一些客户端Javascript堆栈溢出问题,这发生在第三方库中,它进行了一些函数调用,并且由于某种原因它们偶尔会因为它的低堆栈限制而在IE中制动.

然后我编写了一个小测试HTML来测试一些浏览器的堆栈大小限制,发现IE8实际上有一个小的堆栈限制,如果与运行在Windows 7操作系统,8Gb RAM的笔记本电脑上的FF 7或Chrome 14相比:

<html>
<body>

<!-- begin Script: -->
<script type="text/javascript">

function doSomething(){

  var i = 3200;
  doSomethingElse(i);

}

function doSomethingElse(i){
  if (i == 0) return -1;
  doSomethingElse(i-1);
}

doSomething(); 

</script>
<!-- END OF PAGE -->

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

当值大约为3200时,IE引发堆栈溢出,如果与IE相比,Firefox和Chrome可以处理非常深的递归.

我想知道是否有办法将堆栈溢出异常与在IE或任何其他浏览器中运行时引发它的Javascript函数联系起来,如果它可以在堆栈中为堆栈跟踪提供堆栈中的函数链提出错误.

javascript browser stack limit

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

如何遍历嵌套对象

嗨,我有一个看起来像这样的嵌套对象

var dogTypes = {
GermanShepard {color: "black and white"},
Beagle       {color: "brown and white"},
cheuwahwah  {color: "green and white"},
poodle:    {color: "purple and white"},
 }
Run Code Online (Sandbox Code Playgroud)

我试图遍历嵌套对象中的所有属性,我知道如何使用常规对象而不是嵌套对象来执行此操作,因此如果有人可以帮助我,那就太好了。

 for (var key in dogTypes) {
 console.log(key + " : " + dogTypes[key])
 }
Run Code Online (Sandbox Code Playgroud)

这是我打印出来的代码

 GreatDane : [object Object]
   GermanSheppard : [object Object]
   Beagle : [object Object]
   BullDog : [object Object]
Run Code Online (Sandbox Code Playgroud)

我将在哪里将颜色属性合并到 for in 循环中,请帮忙!谢谢

javascript loops nested properties object

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

如何遍历嵌套对象的所有键和值?

我正在使用javascript(在服务器端和客户端)开发Web应用程序.我作为json发送来回数据,我希望能够在另一方面解析它.问题是我内部有几层嵌套对象,所以这就是我被困住的地方.例如,我发送以下数据:

var data = {};
data.title = "My Title";
data.metric = {
   fact : "Malicious code detected",
   technique : "XSS"
};
data.subject = {
   userType : "ADMIN",
   userName : "Jack",
   clientNumber : "000",
   terminal : "192.168.1.1"
};
data.context = {
   environment : {
      session : "00",
      hostname : "mainServer",
      sysType : "production"
   },
   resource : {
      wpt : "DIA",
      pid : "1024"
   }
};
Run Code Online (Sandbox Code Playgroud)

另一方面,当我收到它时,我只想完全遍历此对象,并打印其内容.我在stackoverflow上看到了很多类似的问题,但没有一个有用.这是我到目前为止所做的:

function display(data) {
    var resp = "";
    var prop = null;
    var dataJSON = JSON.parse(data); …
Run Code Online (Sandbox Code Playgroud)

javascript parsing json

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

如何在Javascript中将字符串数组转换为特定的树结构

我从后端得到一个文件路径列表,它代表一个文件夹结构,如下所示:

paths = ["path/to/file1.doc", "path/to/file2.doc", "foo/bar.doc]
Run Code Online (Sandbox Code Playgroud)

路径的长度是任意的。为了使用文件树组件(angular2-tree-component),我需要将此数据转换为以下格式

nodes = [
    {
        "name": "path",
        "children": [
            {
                "name": "to",
                "children": [
                    {"name": "file1.doc"},
                    {"name": "file2.doc"}
                ]
            }
        ]
    },
    {
        "name": "foo",
        "children": [
            {"name": "bar.doc"}
        ]
    }
]
Run Code Online (Sandbox Code Playgroud)

认为转换数据的最有效方法是

  1. 先用镜像树结构的文件映射数组,然后映射到
  2. 迭代每个键以完成“子/父”关系。

步骤1:

transformToTree(data) {
    const tree = {};
    function addPathsToTree(paths) {
        let map = tree
        paths.forEach(function(item) {
            map[item] = map[item] || {};
            map = map[item];
        });
    }
    data.forEach(function(path) {
        let pathPart = path.split('/');
        addPathsToTree(pathPart); …
Run Code Online (Sandbox Code Playgroud)

javascript mapping typescript angular

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

如何将js对象转换为点表示法字符串

我有一个像这样的 javascript 普通对象:{a: {b: 1} } 并且我想将其转换为像这样的点符号字符串a.b = 1

用例:

将对象发送到纯文本环境(例如 cli)或作为 url 参数。

javascript

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