<script type="text/javascript">
var sumobj = { 'foo':"apple",'bar':"banana" };
var prop1 = 'foo';
document.write( sumobj.prop1 + "<br />" );
</script>
Run Code Online (Sandbox Code Playgroud)
我希望能够做类似于上面的事情,但目前显示"未定义".
无论如何要做到这一点,还是接近它?
有没有办法将变量添加到jQuery命令中,如下所示:
var id = 10;
var msg = CKEDITOR.instances.contentedit+id.getData();
Run Code Online (Sandbox Code Playgroud)
我预计
CKEDITOR.instances.contentedit10.getData();
Run Code Online (Sandbox Code Playgroud)
从上面的代码
但它对我不起作用并导致错误,因为它没有正确地将变量添加到命令中.
我想在JSON中添加带有特殊字符的字符串作为KEY.例如" Sam @ 123 "
这是代码,我正在尝试.
<script type="text/javascript">
var jsonObj={"sam":1,"rudolph":1,"js":1," ":12};
var key="samw@123";
alert("Add it.")
// Adding the key with Special Character in JSON
eval("jsonObj."+key+"=11")
alert("Added successfully.")
for(var i=0; i< Object.keys(jsonObj).length; i++){
alert("KEY#"+Object.keys(jsonObj)[i]);
}
</script>
Run Code Online (Sandbox Code Playgroud)
我在第6行" eval......" 收到错误.
未捕获的SyntaxError:意外的标记ILLEGAL
还有其他方法可以在Json中添加特殊字符作为KEY吗?
我也无法添加
var key="samw-123";
Run Code Online (Sandbox Code Playgroud)
为此,我得到错误说
未捕获的ReferenceError:赋值中的左侧无效
我怎样才能执行这样的Javascript函数:
cursor.continue(parameters)
Run Code Online (Sandbox Code Playgroud)
通过使用字符串来识别函数名称,而不使用eval?像这样的东西:
cursor.callMethod("continue", parameters);
Run Code Online (Sandbox Code Playgroud)
这可能吗?
我正在使用forEach函数循环一个简单的对象,我将对象作为上下文传递.
当我尝试使用this[key]它来访问一个对象属性但是this.key不起作用时,有人可以告诉我们它为什么会这样做吗?
var calendar = {
moveAll: false,
moveSingleDay: false,
translateRange : false
}
angular.forEach(calendar, function(val, key){
console.log(this[key]); // returns val
console.log(this.key); // returns undefined
}, calendar);
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用包含下划线的变量访问对象属性,但是它给出了错误Uncaught ReferenceError: topic_ is not defined.我确实研究了这个问题的解决方案使用变量动态访问对象属性,但它不起作用.
var topics_page_no = {
topic_1: [2,3,4],
topic_2: [5,6,7]
}
/* Navigate to particular topic's first page based on selection */
$(document).on('click', '.topic-menu-dropdown-item', function(){
var topic_id = $(this).data('topic-id');
console.log(topics_page_no.topic_[topic_id][0] + ".html");
});
Run Code Online (Sandbox Code Playgroud)
预期产量: 2.html / 5.html
这是我的阵列
[
{
"id": 2,
"language": {
"name": "English",
"abbreviation": "EN"
}
]
Run Code Online (Sandbox Code Playgroud)
访问 language.name
function get(arrName)
{
for(var k = 0 ; k< arr.length; k++)
{
console.log(arr[k].language.name); //English
}
}
Run Code Online (Sandbox Code Playgroud)
在arr[k].language.name,我想把'language'字符串作为动态,我从函数的参数中得到它arrName.应该如此
function get(arrName)
{
for(var k = 0 ; k< arr.length; k++)
{
var dynamicArr = '.'+arrName+'.name';
console.log(arr[k]+dynamicArr);
}
}
Run Code Online (Sandbox Code Playgroud)
在这里显示
[object Object].language.name;
Run Code Online (Sandbox Code Playgroud)
如何获得实际的数组值?
我保证已经搜索了“对此的简单答案”(我坚持使用“简单”这个词),但不幸的是我找不到任何答案(或关于我对 JSON/Jquery 的理解的平易近人的答案)。当然,我对 JSON 太菜鸟了,无法创建一个精确的问题(并找到正确的答案......)
无论如何,这是我的问题。
我的 JSON 文件prices.json(示例):
{
"test1" : {
"sub_test1_1" : 10,
"sub_test1_2" : 20,
"sub_test1_3" : 30,
},
"test2" : {
"sub_test2_1" : 40,
"sub_test2_2" : 50,
"sub_test2_3" : 60,
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的jquery
$("#testing").click(function() {
$.getJSON('/prices.json', function(jsonData) {
alert(jsonData.test2.sub_test_2_2);
});
});
Run Code Online (Sandbox Code Playgroud)
警报给了我正确的数据:50
所以现在,我定义一个简单的变量,例如
var crazyVar = test2;
Run Code Online (Sandbox Code Playgroud)
我想将此变量放入字符串“jsonData.test2.sub_test_2_2”中,例如
$("#testing").click(function() {
$.getJSON('/prices.json', function(jsonData) {
alert(jsonData.crazyVar.sub_test_2_2);
});
});
Run Code Online (Sandbox Code Playgroud)
当然,它失败了:(
我读到我需要玩弄对象,我尝试了所有方法将 madVar 转换为一种“对象”,但不可能找到一个简单的解决方案。
我试图获取对象中的对象的值,但键值是一个变量,所以我不知道如何使这个代码工作:
var res = 'Hello';
var greetings = {
'Hello': {'lang':'EN' ,'goodbye': 'Goodbye'},
'Bonjour': {'lang':'FR', 'goodbye': 'Aurevoir'}
}
Run Code Online (Sandbox Code Playgroud)
后来我想用这个:
greetings.res.lang
Run Code Online (Sandbox Code Playgroud)
得到:'EN',现在我得到'未定义',因为它评估表达式greetings.res而不是greeting.Hello所以它没有在列表中找到它.
编辑:谢谢你的快速回答!
我希望有可重用的函数,它根据作为参数传递给属性的属性映射对象数组.
这是我的代码:
let arr = [
{
country: 'poland',
population: 380000
},
{
country: 'bangladesh',
population: 3492423
}
]
function filterMyArr (myArr, condition) {
return myArr.map(element => element.country)
}
console.log(filterMyArr(arr))
Run Code Online (Sandbox Code Playgroud)
当我更改代码并尝试传递条件时,执行它时不起作用.我想用第二个参数调用一个函数,例如filterMyArr(arr,country),并得到类似的结果.我希望它可以重复使用,所以我可以将它用于人口或任何其他财产.谢谢.