Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Работа с массивами (https://javascript.ru/forum/misc/61073-rabota-s-massivami.html)

рони 05.04.2018 22:07

vovang,
да

vovang 05.04.2018 22:09

Так почему не работает?

рони 05.04.2018 22:11

Цитата:

Сообщение от vovang
Так почему не работает?

что не работает?

vovang 05.04.2018 22:12

Функция searchProperty

рони 05.04.2018 22:14

vovang,
где ваш код, который не работает?

vovang 05.04.2018 22:24

Может я что-то не понимаю.Вот мой код скрипта изначальный
var park = new Array();
var marshrut = new Array();
 
function input(){
var busn = document.f.busn.value;
var name = document.f.fio.value;
var marsh = document.f.marsh.value;
 
var bus = {
busn:busn,
name:name,
marsh:marsh
};
 
var bus1 = Object.create(bus);
var Element=park.unshift(bus.busn+'/'+bus.name+'/'+'№'+bus.marsh);
}
 
function output(){
document.f.displey1.value=park;
document.f.displey2.value=marshrut;
}
 
function inpdel1(){
var busn=document.f.busn.value;
/*for(var i=0;i<park.length;i++){
if(busn=park){
marshrut.unshift(park[i]);
park.shift(park[i]);
}
}*/
}
 
function inpdel2(){
var busn=document.f.busn.value;
for(var i=0;i<marshrut.length;i++){
if(busn=marshrut){
park.unshift(marshrut[i]);
marshrut.shift(marshrut[i]);
}
}
}

Вот ваш код
function searchProperty(array, property, value) {
  for (var i = 0; i < array.length; i++) {
    var item = array[i];
    if (property in item && item[property] == value) {
      return i;
    }
  }
  return -1;
}
function inpdel1(){
var busn = document.f.busn.value;//доступ к полю ввода
var index = searchProperty(park, "busn", busn);
var obj;
if (index !== -1) {
  obj = park.splice(index, 1)[0];
}
if (obj) {
  marshrut.push(obj);
}
}

Вставьте ваш фрагмент кода в полный скрипт.

рони 05.04.2018 22:28

Цитата:

Сообщение от vovang
if(busn=marshrut){

это бред и его нужно убрать, о чём вам написано в самом начале

vovang 05.04.2018 22:39

В функции inpdel1 этот бред
if(busn=marshrut){
отсуствует.Функция inpdel1 записывает в массив marshrut объект по свойству busn и удаляет этот же объект из массива park.На функцию inpdel2 можете не обращать внимания,она выполняет другие действия.Вставьте ваш фрагмент кода в общий скрипт.Чтобы было понятно как он распологается.

рони 05.04.2018 23:00

vovang,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">

  <script>
var park = new Array;
var marshrut = new Array;

function createBus() {
    var busn = document.f.busn.value;
    var name = document.f.fio.value;
    var marsh = document.f.marsh.value;
    var bus = {
        busn: busn,
        name: name,
        marsh: marsh
    };
    document.f.reset();
    return bus;
}

function showBusFromArray(array, elem) {
    var str = "";
    for (var i = 0; i < array.length; i++) {
        var item = array[i];
        str += JSON.stringify(item) + "\n";
    }
    elem.value = str;
}

function addBus() {
    var bus = createBus();
    park.push(bus);
    var elem = document.f.displey1;
    showBusFromArray(park, elem);
    elem = document.f.displey2;
    showBusFromArray(marshrut, elem);
}

function searchProperty(array, property, value) {
    for (var i = 0; i < array.length; i++) {
        var item = array[i];
        if (property in item && item[property] == value) {
            return i;
        }
    }
    return -1;
}

function fromParkToMarshrut() {
    var busn = document.f.busn.value;
    var index = searchProperty(park, "busn", busn);
    var obj;
    if (index !== -1) {
        obj = park.splice(index, 1)[0];
    }
    if (obj) {
        marshrut.push(obj);
    }
    document.f.reset();
    var elem = document.f.displey1;
    showBusFromArray(park, elem);
    elem = document.f.displey2;
    showBusFromArray(marshrut, elem);
};
  </script>
</head>

<body>
<form name="f">
<table width="100">
<tr>
  <td>В парке</td>
  <td>На маршруте</td>
</tr>
<tr>
  <td><textarea name="displey1" rows="5" cols="20"></textarea></td>
  <td><textarea name="displey2" rows="5" cols="20"></textarea></td>
</tr>
</table>
<br>
Введите данные<br>
фио<br>
<input type="text" name="fio"><br>
номер автобуса<br>
<input type="text" name="busn"><br>
номер маршрута<br>
<input type="text" name="marsh"><br>
<input type="button" value="Добавить автобус" onClick="addBus()">
<input type="button" value="Ввести номер автобуса, отправить на маршрут" onClick="fromParkToMarshrut()">

</form>

</body>
</html>

vovang 05.04.2018 23:29

И снова вы изменили весь скрипт.Складывается впечатление,только в написаном вами скрипте работает ваш фрагмент кода.Потому как в моём скрипте
var park = new Array();
var marshrut = new Array();
  
function input(){
var busn = document.f.busn.value;
var name = document.f.fio.value;
var marsh = document.f.marsh.value;
  
var bus = {
busn:busn,
name:name,
marsh:marsh
};
  
var bus1 = Object.create(bus);
var Element=park.unshift(bus.busn+'/'+bus.name+'/'+'№'+bus.marsh);
}
  
function output(){
document.f.displey1.value=park;
document.f.displey2.value=marshrut;
}
  
function searchProperty(array, property, value) {
  for (var i = 0; i < array.length; i++) {
    var item = array[i];
    if (property in item && item[property] == value) {
      return i;
    }
  }
  return -1;
}

function inpdel1(){
var busn=document.f.busn.value;
var index = searchProperty(park, "busn", busn);
var obj;
if (index !== -1) {
  obj = park.splice(index, 1)[0];
}
if (obj) {
  marshrut.push(obj);
}
}
,код
function searchProperty(array, property, value) {
  for (var i = 0; i < array.length; i++) {
    var item = array[i];
    if (property in item && item[property] == value) {
      return i;
    }
  }
  return -1;
}
function inpdel1(){
var busn = document.f.busn.value;//доступ к полю ввода
var index = searchProperty(park, "busn", busn);
var obj;
if (index !== -1) {
  obj = park.splice(index, 1)[0];
}
if (obj) {
  marshrut.push(obj);
}
}
неработает.


Часовой пояс GMT +3, время: 19:05.