javascript push key value


javascript push key value

在我的脑海中,我想在数组上推送一个键值。

例如,在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