如果我有这样的清单:
var a= [['1'[0]],['2'[0]],['3'[0]],['4'[0]]];
如果条件另一个变量应该等于' 1',' 2',' 3',' 4'然后增加其列表的值,例如:
for(var i=0; i<a; i++{
if(a[i] == z) {
a[i] += z;
}
}
我知道上面的代码不起作用,但我怎么能得到每个内部的代码呢?要素是什么?
我是一个javascript新手,所以请原谅代码中的任何错误。
由于
答案 0 :(得分:2)
这些最里面的数组位于第一组内部数组的索引[1]
,假设您的数组的实际格式为:
// Note the commas between the inner elements which you don't have above.
var a = [['1',[0]],['2',[0]],['3',[0]],['4',[0]]];
所以你几乎就在那里,你需要访问a[i][1][0]
并将其++
增加而不是+= z
。
示例:
console.log(a[1][1][0]);
// 0 (at element '2')
// z is the string value you are searching for...
for(var i=0; i < a.length; i++) {
// Match the z search at a[i][0]
// because a[i] is the current outer array and [0] is its first element
if(a[i][0] == z) {
// Increment the inner array value which is index [i][1][0]
// Because the 1-element inner array is at [i][1] and its first element is [0]
a[i][1][0]++;
}
}
所以z = '2'
:
// Flattened for readability:
a.toString();
// "1,0,2,1,3,0,4,0"
//-------^^^
然后z = '4'
:
// This time the '4' element gets incremented
a.toString();
// "1,0,2,1,3,0,4,1"
//-------^^^-----^^^
Array[1] 0: 1
是z == '4'
的增量值。
答案 1 :(得分:1)
我不确定你想要完成什么,但我认为它是这样的:
var lists = {
'1': [0],
'2': [0]
};
function incrementList(listKey, value) {
if (lists[listKey]) {
lists[listKey] = lists[listKey].map(function(num) {
return num + value;
});
}
}
incrementList('1', 2);
console.log(lists['1'][0]); // 2
incrementList('1', 4);
console.log(lists['1'][0]); // 6