var b = {
maths:[12,23,45],
physics:[12,23,45],
chemistry:[12,23,45]
};
Run Code Online (Sandbox Code Playgroud)
我想访问对象 b 中的数组。即数学、物理、化学。这可能是一个简单的问题,但我正在学习......谢谢
我有一些使用 JavaScript 数组排序的代码可以工作,但似乎效率很低。
出于示例目的,我定义了一个对象数组,如下所示
dummyData = [];
dummyData.push({ col01:"aa", col02:"ac", col03:"ab" });
dummyData.push({ col01:"ab", col02:"ab", col03:"ac" });
dummyData.push({ col01:"ac", col02:"aa", col03:"aa" });
Run Code Online (Sandbox Code Playgroud)
然后我可以使用这样的函数对 col01 进行排序
function f_sort_col01(dataArg) {
dataArg.sort(function(res01, res02) {
var arg01 = res01.col01.toLowerCase();
var arg02 = res02.col01.toLowerCase();
if(arg01 < arg02) { return -1; }
if(arg01 > arg02) { return 1; }
return 0;
});
return dataArg;
}
Run Code Online (Sandbox Code Playgroud)
这工作得很好,但问题是当我需要对不同的列进行排序时,我必须创建一个像这样的全新函数
function f_sort_col02(dataArg) {
dataArg.sort(function(res01, res02) {
var arg01 = res01.col02.toLowerCase();
var arg02 = res02.col02.toLowerCase();
if(arg01 < arg02) { return -1; …Run Code Online (Sandbox Code Playgroud) 例如,假设我使用节点分类来实现此功能:
function example(){
var exampleVar = nodes.classfication;
//below i use exampleVar to do calculations
.
.
.
.
}
Run Code Online (Sandbox Code Playgroud)
但有时候说我想获得节点状态,所以我这样做:
function example(){
var exampleVar = nodes.status;
//below i use exampleVar to do calculations
.
.
.
.
}
Run Code Online (Sandbox Code Playgroud)
我不想重复代码(在我的代码中)我想要重用的函数中有很多代码.因此,根据我想要从这个函数中获取的内容,我将它传递给函数,如下所示:
function example(thisAttribute){
var exampleVar = nodes.thisAttribute; //using the variable passed to the function
//below i use exampleVar to do calculations
.
.
.
.
}
Run Code Online (Sandbox Code Playgroud)
这不起作用,我如何将对象属性作为参数传递给函数?我试过在网上看,但我不认为我正在寻找正确的东西,因为我找不到任何帮助.无论如何,提前谢谢:)
我编写的这个 for-in 循环为所有对象属性打印“未定义”值:
let user = {
id: 1,
name: "Some name"
};
for (let prop in user)
console.log(prop + ": " + user.prop);Run Code Online (Sandbox Code Playgroud)
控制台输出:
id: undefined
name: undefined
Run Code Online (Sandbox Code Playgroud) 我试图获得一个PHP文件设置,以从jQuery AJAX调用返回MySQL数据库查询的结果.返回的结果将是一个数组.我有一个非常基本的开始,我只是在php文件中来回获取一些基本数据,但我遇到了一些基本的语法问题:
PHP代码:
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
Run Code Online (Sandbox Code Playgroud)
jQuery代码:
$.post("dbFile.php", str, function(theResponse){
alert('the response: ' + theResponse);
var obj = $.parseJSON(theResponse);
alert(obj.a);
Run Code Online (Sandbox Code Playgroud)
我可以打印出obj.a,obj.b,obj.c ......没问题.问题是当我增加MySQL结果时,我将递增一个计数器.所以,数组不使用字母,它使用数字:
$arr[$i] = mysqlresults ... $i++;
Run Code Online (Sandbox Code Playgroud)
所以,在JavaScript/jQuery中我有一个对象(不是数组).我可以打印出obj.a例如,但我不能打印出obj.2(例如).换句话说,如果我用php数组中的数字替换字母,我不知道如何在JavaScript/jQuery中打印它们.我可以以某种方式更改parseJSON返回到数组的对象(以便我可以循环它)吗?
可能的重复:
JavaScript 属性访问:点符号与括号?
我是 chrome 扩展的新手。我知道 Java,但 Javascript 是完全不同的东西。
我想问一下localStorage["something"]和 和有localStorage.something什么不一样?
方括号与点。
我目前正在开展塔防游戏,我目前正在实施不同的塔.我正在寻找一种方法来设置预定义的值,如配置文件,我可以在构建时提取不同塔的不同值.
我一直在搜索,我遇到了一些看起来像这样的代码:
var building_attributes = {
"Wall" : {
Damage : 0 ,
RANGe : 0
speed : 0
bullet_speed : 0
life : 100 ,
Shield : 500 ,
cost : 5
}
};
Run Code Online (Sandbox Code Playgroud)
如果我实现了这个,那我怎么能访问不同的值呢?或者也许有人在我的问题上有一个很好的解决方案.
所有答案都很有用.:)
为什么先工作而不是后者?*它只有一个小的区别,在后一种情况下,我使用速记来访问猫对象属性.我读到如果"属性的名称将是一个有效的变量名称 - 当它没有任何空格或符号并且不以数字字符开头时"它应该没有任何区别.
//this works
var cats = {Spot:true};
function addCat (name) { cats[name] = true; }
addCat("white");
console.log ("white" in cats); //true
console.log (cats.white); //true
Run Code Online (Sandbox Code Playgroud)
//this doesn't work
var cats = {Spot:true};
function addCat (name) { cats.name = true; }
addCat("white");
console.log ("white" in cats); //false
console.log (cats.white); //undefined
Run Code Online (Sandbox Code Playgroud) 我想将键值对发送到我的php页面,但我需要从数据标签中动态设置键值.
这是我到目前为止的代码:
function send(){
var attr = new Array();
var key = $('#add').attr('data-key');
var value = $('#add').attr('data-value');
attr.push({ key : value });
var data = {attributes: attr};
$.ajax({
url: "ajax.php",
type: "POST",
data: data,
success: function(result) {
alert(result)
}
});
}
Run Code Online (Sandbox Code Playgroud)
这不是实际代码,它只是基本功能.
问题出在这里:
attr.push({ key : value });
Run Code Online (Sandbox Code Playgroud)
'key'不是我设置的变量.
我能帮忙吗?我真的很感激.非常感谢你!
到目前为止,在我看到的所有教程中,字典中的项目都已初始化,如下所示:
var myObj = { foo:"bar", fooBar:"fooBaz" };
Run Code Online (Sandbox Code Playgroud)
为什么键没有被引用?它们不只是字符串吗?
如果我想在字典键中包含空格,我该怎么办?