在我的脑海中,我想在数组上推送一个键值。
例如,在PHP中,这是这样做的:
$err = array();
function check($k,$v) {
$err[$k] = $v;
}
这在JavaScript/jQuery中是如何完成的?
Javascript 键/值对在对象中支持,而不是在数组中支持
插入元素:
var arr= [1,2,3],
result = {};
for(var key in arr) {
result[key] = arr[key]; // in this case key will be 0,1,2 i.e index of array element
}
检查密钥是否存在:
function checking(k, v) {
if(result.k != null || result.k != undefined) {
// do something
}
}
根据您的功能:
var err = {}; // not array, should be object
function check(k,v) {
err[k] = v; // or err.k = v;
}
有关插入的更多信息:
var x = [];
x.some = 'some'; // OK; arrays are objects
x['some'] = 'some'; // exactly the same
获取值:
x.home; // give 'some'
x['home']; // give 'some'
计数长度:
如果你想得到一个数组的长度,你必须使用.length
。
例如:
x.length; // will return 1
如果要计算对象的长度:
var obj = {a: 'XYZ', b: 'PQR'};
Object.keys(obj).length; // will return 2
要删除项目:
如果要从对象中删除项目:
delete obj[key];
从数组中删除项目:
delete arr[index]; // index is position of the element within array
也可以删除数组元素,你可以做
arr.splice(0,2); // splice(index, howmany, [item1, item2, ...., itemx])
// in this example from start 2 items will delete
你使用一个对象。并以大致相同的方式进行。
var $err = {};
function check($k, $v) {
$err[$k] = $v;
}
当然,这不是一个数组。
请注意,您实际上可以在 Javascript 数组中执行此操作,解释器会允许您这样做。
var $err = []; // an array
function check($k, $v) {
$err[$k] = $v;
}
但是你并没有真正推动数组,而是扩展数组对象。你可以用这个来检查一下:
var foo = [];
foo['hello'] = 'world';
console.log(foo); // []
console.log(foo['hello']); // 'world'
console.log(foo.hello); // 'world'
console.log(foo.length); // 0
。所以最好小心这个陷阱。:D