Procedurally create a plane of varying size

I want to make a plane mesh, but of a specified number of vertices per side. However, I’ve hit some problems in working out a good way to do vertex number, triangles, and uv. So what’s going wrong? It should currently create a row of triangles.

#pragma strict
var newVertices = new Array();
var newPoints = new Array();
var newUV = new Array();
var newTriangles = new Array();
var width = 10;
var length = 10;
private var vertPoint = 0;
var distanceMod = 0;

function Start () {
for(var i=0; i<=width; i++){
	for(var j=0; j<=width; j++){
	newPoints.Push(Vector3(i,0,j));
	}
}
print(newPoints);
print(newPoints[3]);

//0,1,3,1,3,4
//1,2,4,2,4,5

for(var k = 0; k<=length; k++){

newVertices.Push(newPoints[0+distanceMod]);
newVertices.Push(newPoints[1+distanceMod]);
newVertices.Push(newPoints[(width++)+distanceMod]);

newTriangles.Push(distanceMod);
newTriangles.Push(distanceMod+1);
newTriangles.Push(distanceMod+2);
distanceMod++;
}

var mesh : Mesh = new Mesh ();
GetComponent(MeshFilter).mesh = mesh;

mesh.vertices = newVertices;
//mesh.uv = newUV;
mesh.triangles = newTriangles;
print(newTriangles);
}

Have you looked at this script on the wiki? Might help you out.