update: seem have fixed adding
document.getelementbyid('fullname').focus(); namesalaries.sort(); } in main function. can't believe worked. assume it's because 'zipped' main arrays. help!
okay, i'm trying new method. way, employees added dynamically new table cell each time. issue i'm having remains, however. need results sort submitted. both name, , salaries.
<!doctype html> <html lang="en"> <head> <meta charset="utf-8" /> <title> table entry </title> </head> <body> <input type="text" id="fullname" value="" placeholder="firstname"> :enter employee name <br> <input type="text" id="salary" value="" placeholder="salary"> :enter employee salary <br> <input type="button" value="click me add array" onclick="addtoarray()"> <p> </p> <table border="1" id="source" cellspacing="3" cellpadding="3"> <thead> <tr> <th>employee name</th> <th>employee salary</th> </tr> </thead> <tbody id="sourcebody"> <tr><td> </td><td> </td></tr> </tbody> </table> <script type="text/javascript"> var namesalaries= []; function addtoarray() { var fn = document.getelementbyid('fullname').value; var sly = document.getelementbyid('salary').value; var both = [fn,sly]; namesalaries.push(both); createbody(namesalaries); document.getelementbyid('fullname').focus(); } function createbody(ns) { var tarr = []; (var i=0; i<ns.length; i++) { tarr.push('<tr><td>'+ns[i][0]+'</td><td>'+ns[i][1]+'</td></tr>'); } document.getelementbyid('sourcebody').innerhtml = tarr.join(''); } </script> </body> </html>
you can join salary , name using single object. example:
var joe = { name: "joe schmoe", salary: 1234 }; using technique, "zip" 2 arrays one:
var employees = []; for(var = 0; < names.length && < salaries.length; i++) { employees.push({ // push appends end of array name: names[i], salary: salaries[i] }); } and can pass function array.sort used compare values. if want sort employees array based on employee names, can compare strings using < , > alphabetizing:
var alphabatizedemployees = employees.sort(function(employee1, employee2) { return employee1.name > employee2.name; }); and can sort based on salary same way, except using salary key instead of name key:
var employeessalarysorted = employees.sort(function(employee1, employee2) { return employee1.salary > employee2.salary; }); sort returns new array, original employees array not sorted.
i hope helps.
Comments
Post a Comment