Hallo,

In Javascript heb ik de volgende array:


var text_array = new Array();

var text = {
value:document.querySelector('#input').value,
color: '#ccc', 
}
textObjects.push(text_array);



Nu wil ik een bepaalde waarde uit deze array hebben (eerste item), als voorbeeld wil ik de 'value' hebben.
var text = text_array[0];

console.log(text);
In de console.log zie ik {value: "Hallo", color: "#ccc"}


Maar als ik console.log(text.value), of console.log(text["value"]) gebruikt, is er de volgende error "undefined is not an object (evaluating 'text.value')"

Hoe kan ik deze waarde eruit krijgen op key?
Dit werkt wel :

 <input id="input" type="text" name="text" value="Kleurloos" />

<script>

var textObjects = new Array();
var text_array = new Array();

var text_array = {
	value:document.querySelector('#input').value,
	color: '#ccc'
}

textObjects.push(text_array);

console.log(textObjects);

console.log(text_array);

console.log(text_array.value);
console.log(text_array.color);

console.log(text_array["value"]);
console.log(text_array["color"]);
</script>
Tips:

Je kunt in JavaScript de korte array notatie gebruiken, net als in PHP:

var my_array = [];


Het is het beste om één stijl van naamgeving te gebruiken, dus niet snake_case en camelCase door elkaar:

var text_array;
var textObject;


Werkend voorbeeld:

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title></title>
</head>

<body>
	<input type="text" id="input" value="phphulp">

    <script>
	    var text_array = [];
	    var text_object = {
	        value: document.querySelector('#input').value,
	        color: '#ccc'
	    }

	    text_array.push(text_object);

	    console.log(text_array);
	    console.log(text_array[0]);
	    console.log(text_array[0].value); // Waarschijnlijk bedoelde je deze?
	    console.log(text_array[0].color);

	    console.log(text_object);
	    console.log(text_object.value);
	    console.log(text_object.color);
	    console.log(text_object['value']);
	    console.log(text_object['color']);
    </script>
</body>

</html>

Reageren