如何更正以下代码?
var arr = [];
var name = "name";
var val = 2;
arr.push(val); //works , but not associative
arr[name] = val; //does not work
console.log(arr);
如何更正以下代码?
var arr = [];
var name = "name";
var val = 2;
arr.push(val); //works , but not associative
arr[name] = val; //does not work
console.log(arr);
要在 JavaScript 中创建类似关联数组的东西,您必须使用对象。</p>
var obj = {}; // {} will create an object
var name = "name";
var val = 2;
obj[name] = val;
console.log(obj);
演示:http: //jsfiddle.net/bz8pK/1/
JavaScript 没有关联数组。您需要使用 Objects 代替:
var obj = {};
var name = "name";
var val = 2;
obj[name] = val;
console.log(obj);
为了获得价值,您现在可以使用不同的方式:
console.log(obj.name);
console.log(obj[name]);
console.log(obj["name"]);
JavaScript有关联数组。
这是一个工作片段。
<script type="text/javascript">
var myArray = [];
myArray['thank'] = 'you';
myArray['no'] = 'problem';
console.log(myArray);
</script>
它们被简单地称为对象。
首先创建一个对象数组,
var arr = {'name': []};
接下来,将值推送到对象。
var val = 2;
arr['name'].push(val);
从中读取:
var val = arr.name[0];
如果您来这个问题是为了寻找一种方法来推入关联数组的末尾,同时保留顺序,就像一个适当的堆栈一样,这个方法应该可以工作。尽管输出与原始问题不同,但仍然可以迭代。
// Order of entry altered
let obj = {}; // will create an object
let name = "4 name";
let val = 4;
obj[val] = name;
name = "7 name";
val = 7;
obj[val] = name;
name = "2 name";
val = 2;
obj[val] = name;
console.log(obj);
// Order of entry maintained for future iteration
obj = []; // will create an array
name = "4 name";
val = 4;
obj.push({[val]:name}); // will push the object to the array
name = "7 name";
val = 7;
obj.push({[val]:name});
name = "2 name";
val = 2;
obj.push({[val]:name});
console.log(obj);