我想在JavaScript中解析JSON字符串.响应是这样的
var response = '{"result":true,"count":1}';
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得的值result,并count从这个?
我有以下JSON结构:
[{ "id":"10", "class": "child-of-9" }, { "id": "11", "classd": "child-of-10" }]
Run Code Online (Sandbox Code Playgroud)
如何使用jQuery或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让我感到惊讶,这是另一个例子.我刚刚遇到了一些我最初没有理解的代码.所以我调试了它并得出了这个发现:
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函数的基本概念缺乏认真的理解.请帮我理解这个.
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) 给出一个简单的基于零的数字索引数组:
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中获取每个对象的名称和值?
除了循环以寻找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) 我正在努力寻找一种以我喜欢的方式迭代这个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的名称/编号,但我无法使用对象名称的字符串访问该对象,因此我不确定从何处开始.
我正在尝试遍历嵌套对象以检索由字符串标识的特定对象.在下面的示例对象中,标识符字符串是"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)