相关疑难解决方法(0)

在JavaScript中解析JSON?

我想在JavaScript中解析JSON字符串.响应是这样的

var response = '{"result":true,"count":1}';
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得的值result,并count从这个?

javascript parsing json

1642
推荐指数
16
解决办法
186万
查看次数

如何迭代JSON结构?

我有以下JSON结构:

[{ "id":"10", "class": "child-of-9" }, { "id": "11", "classd": "child-of-10" }]
Run Code Online (Sandbox Code Playgroud)

如何使用jQuery或JavaScript迭代它?

javascript json loops

485
推荐指数
13
解决办法
83万
查看次数

使用字符串键访问嵌套的JavaScript对象

我有这样的数据结构:

var someObject = {
    'part1' : {
        'name': 'Part 1',
        'size': '20',
        'qty' : '50'
    },
    'part2' : {
        'name': 'Part 2',
        'size': '15',
        'qty' : '60'
    },
    'part3' : [
        {
            'name': 'Part 3A',
            'size': '10',
            'qty' : '20'
        }, {
            'name': 'Part 3B',
            'size': '5',
            'qty' : '20'
        }, {
            'name': 'Part 3C',
            'size': '7.5',
            'qty' : '20'
        }
    ]
};
Run Code Online (Sandbox Code Playgroud)

我想使用这些变量访问数据:

var part1name = "part1.name";
var part2quantity = "part2.qty";
var part3name1 = "part3[0].name";
Run Code Online (Sandbox Code Playgroud)

part1name应该用someObject.part1.name's值填充,即"Part …

javascript jquery nested path

410
推荐指数
16
解决办法
18万
查看次数

JavaScript中'a'['toUpperCase']()的工作方式和原因是什么?

JavaScript让我感到惊讶,这是另一个例子.我刚刚遇到了一些我最初没有理解的代码.所以我调试了它并得出了这个发现:

alert('a'['toUpperCase']());  //alerts 'A'
Run Code Online (Sandbox Code Playgroud)

现在这必须是明显的,如果toUpperCase()被定义为字符串类型的成员,但它最初对我没有意义.

无论如何,

  • 这是否有效,因为它toUpperCase是'a'的成员?或者幕后还有其他事情发生?
  • 我正在阅读的代码具有如下功能:

    function callMethod(method) {
        return function (obj) {
            return obj[method](); //**how can I be sure method will always be a member of obj**
        }
    }
    
    var caps2 = map(['a', 'b', 'c'], callMethod('toUpperCase')); // ['A','B','C'] 
    // ignoring details of map() function which essentially calls methods on every 
    // element of the array and forms another array of result and returns it
    
    Run Code Online (Sandbox Code Playgroud)

    它是在ANY对象上调用ANY方法的通用函数.但这是否意味着指定的方法已经是指定对象的隐式成员?

我确信我对JavaScript函数的基本概念缺乏认真的理解.请帮我理解这个.

javascript function

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

可以在运行时(或重用)替换ES6模板文字吗?

tl; dr:是否可以制作可重复使用的模板文字?

我一直在尝试使用模板文字,但我想我只是没有得到它,现在我感到沮丧.我的意思是,我认为我得到它,但"它"不应该是它如何工作,或它应该如何得到.应该有所不同.

我看到的所有示例(甚至是标记模板)都要求"替换"在声明时而不是运行时完成,这对我来说对于模板来说似乎完全没用.也许我很疯狂,但对我来说,一个"模板"是一个包含令牌的文档,当你使用它时,它们会被替换,而不是在你创建它时,否则它只是一个文档(即一个字符串).模板与令牌一起存储为令牌,当您评估它们时,将评估这些令牌.

每个人都引用了一个可怕的例子,类似于:

var a = 'asd';
return `Worthless ${a}!`
Run Code Online (Sandbox Code Playgroud)

这很好,但如果我已经知道a,我会return 'Worthless asd'或者return 'Worthless '+a.重点是什么?认真.好吧,重点是懒惰; 更少的优点,更多的可读性.大.但那不是模板!不是恕我直言.MHO就是最重要的!问题,恕我直言,模板在声明时被评估,所以,如果你这样做,恕我直言:

var tpl = `My ${expletive} template`;
function go() { return tpl; }
go(); // SPACE-TIME ENDS!
Run Code Online (Sandbox Code Playgroud)

由于expletive未声明,因此输出类似的内容My undefined template.超.实际上,至少在Chrome中,我甚至无法声明模板; 它会抛出错误,因为expletive没有定义.我需要的是能够在声明模板后进行替换:

var tpl = `My ${expletive} template`;
function go() { return tpl; }
var expletive = 'great';
go(); // My great template
Run Code Online (Sandbox Code Playgroud)

但是,我不知道这是如何可能的,因为这些不是真正的模板.即使你说我应该使用标签,nope,它们也不起作用:

> explete = function(a,b) { console.log(a); …
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 template-literals

98
推荐指数
13
解决办法
3万
查看次数

为什么'for(列表中的var项)'与数组在JavaScript中被认为是不好的做法?

给出一个简单的基于零的数字索引数组:

var list = ['Foo', 'Bar', 'Baz'];
Run Code Online (Sandbox Code Playgroud)

很多时候,我注意到有人建议循环遍历数组中的变量,如下所示:

for(var item in list) { ... }
Run Code Online (Sandbox Code Playgroud)

......几乎可以肯定有人认为这是不好的做法,并提出了另一种方法:

var count = list.length;

for(var i = 0; i < count; i++) {
    var item = list[i];
    ...
}
Run Code Online (Sandbox Code Playgroud)

不使用上面更简单的版本并使用第二个例子的原因是什么?

javascript arrays loops

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

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

JSON在JavaScript中找到

除了循环以寻找JSON数据之外,还有更好的方法吗?这是编辑和删除.

for(var k in objJsonResp) {
  if (objJsonResp[k].txtId == id) {
    if (action == 'delete') {
      objJsonResp.splice(k,1);
    } else {
      objJsonResp[k] = newVal;
    }
    break;
  }
}
Run Code Online (Sandbox Code Playgroud)

数据被安排为地图列表.喜欢:

[
  {id:value, pId:value, cId:value,...},
  {id:value, pId:value, cId:value,...},
  ...
]
Run Code Online (Sandbox Code Playgroud)

javascript search json

59
推荐指数
3
解决办法
15万
查看次数

迭代json对象javascript

我正在努力寻找一种以我喜欢的方式迭代这个JSON对象的方法.我在这里只使用Javascript.

首先,这是对象

{
"dialog":
{
    "dialog_trunk_1":{
        "message": "This is just a JSON Test"
    },

    "dialog_trunk_2":{
        "message": "and a test of the second message"
    },

    "dialog_trunk_3":
    {
        "message": "This is a test of a bit longer text. Hopefully this will at the very least create 3 lines and trigger us to go on to another box. So we can test multi-box functionality, too."
    }
}
}
Run Code Online (Sandbox Code Playgroud)

现在,我只是尝试基本方法来访问此对象上的每个dialog_trunk.理想情况下,我想循环遍历对象和每个主干,显示它的message值.

我已经尝试使用for循环来动态生成dialog_trunk的名称/编号,但我无法使用对象名称的字符串访问该对象,因此我不确定从何处开始.

javascript json object

53
推荐指数
3
解决办法
16万
查看次数

迭代嵌套的JavaScript对象

我正在尝试遍历嵌套对象以检索由字符串标识的特定对象.在下面的示例对象中,标识符字符串是"label"属性.我无法绕过如何遍历树以返回适当的对象.任何帮助或建议将不胜感激.

var cars = {
  label: 'Autos',
  subs: [
    {
      label: 'SUVs',
      subs: []
    },
    {
      label: 'Trucks',
      subs: [
        {
          label: '2 Wheel Drive',
          subs: []
        },
        {
          label: '4 Wheel Drive',
          subs: [
            {
              label: 'Ford',
              subs: []
            },
            {
              label: 'Chevrolet',
              subs: []
            }
          ]
        }
      ]
    },
    {
      label: 'Sedan',
      subs: []
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

javascript iteration

50
推荐指数
3
解决办法
8万
查看次数