Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 26.05.2013, 20:18
Аватар для Demath
Профессор
Отправить личное сообщение для Demath Посмотреть профиль Найти все сообщения от Demath
 
Регистрация: 22.06.2012
Сообщений: 168

Paulyyy, так нужно?


<script type="text/javascript">
function Dublicates(A)
{
    var N=A.length, B=[], k=0;

    for (var i=0; i<N-1; i++)
     { for (var j=i+1; j<N; j++)
        { if (A[i][0] == A[j][0] && A[j] != 'marker')
           { B[B.length] = A[j];
             A[j] = 'marker';
           }
        }
     }

    for (var i=0; i<N; i++)
     { if (A[i] != 'marker') A[k++] = A[i]; }
    A.length = k;

    return 'Дубли (по 1-м элементам строк) исходного массива\n'+B.join('\n')
           +'\n\nИсходный массив без дублей\n(порядок следование строк сохранён)'
           +'\n'+A.join('\n');

}
</script>

<input value="Пример Arr=[[15,2,-5],[1,2,4],[1,0,1],[2,1,5],[15,11,5],[2,2,5]]" type="button"
onclick="alert( Dublicates([[15,2,-5],[1,2,4],[1,0,1],[2,1,5],[15,11,5],[2,2,5]]) )" />
Ответить с цитированием
  #12 (permalink)  
Старый 27.05.2013, 12:24
Аватар для Paulyyy
Интересующийся
Отправить личное сообщение для Paulyyy Посмотреть профиль Найти все сообщения от Paulyyy
 
Регистрация: 01.05.2013
Сообщений: 21

Demath
Не могу сказать что сильно помогло, но все равно спасибо!! буду разбираться..
Один вопросик, что тут означает marker?
Ответить с цитированием
  #13 (permalink)  
Старый 27.05.2013, 12:36
Аватар для Paulyyy
Интересующийся
Отправить личное сообщение для Paulyyy Посмотреть профиль Найти все сообщения от Paulyyy
 
Регистрация: 01.05.2013
Сообщений: 21

Aetae,
Помните вы мне помогли с csv файлом..как форматировать колонку .. , за что спасибо!!
я вызываю функцию Dublicates в строке text.value = arrayToCSV(table, Dublicates(table)); для того чтобы в загружаемом файле изначально удалились дубли.
Также мне надо вывести текстом удаленные дубли text.value += ....;

Соответственно дубли уже не выводятся. Вообще было много вариантов, этот один из них.
Может вы поймете как его лучше сделать...
Ответить с цитированием
  #14 (permalink)  
Старый 27.05.2013, 16:00
Аватар для Demath
Профессор
Отправить личное сообщение для Demath Посмотреть профиль Найти все сообщения от Demath
 
Регистрация: 22.06.2012
Сообщений: 168

Сообщение от Paulyyy Посмотреть сообщение
Demath
Не могу сказать что сильно помогло, но все равно спасибо!! буду разбираться..
Вы напишите пример работы нужного Вам скрипта. Вход и Выход.


Сообщение от Paulyyy Посмотреть сообщение
DemathОдин вопросик, что тут означает marker?
Это временный "заполнитель" для удаляемых элементов. Вместо marker можно использовать любое другое значение, которого нет в массиве.
Ответить с цитированием
  #15 (permalink)  
Старый 27.05.2013, 16:55
Аватар для Paulyyy
Интересующийся
Отправить личное сообщение для Paulyyy Посмотреть профиль Найти все сообщения от Paulyyy
 
Регистрация: 01.05.2013
Сообщений: 21

Посмотрите как работает. Туда надо загрузить файл типа csv чтобы посмотреть что возвращает функция. Конечно же чтобы были дубли по 1 колонке в файле
<!DOCTYPE HTML>
<html lang="ru-RU">
<head>
	<meta charset="UTF-8">
	<title></title>
	<style type="text/css">
	*{margin:0;padding:0}
	html, body{
		width: 100%;
		height: 100%;
	}
	
	html, body, textarea, input{
		font: 20px serif;
		background-color: #220;
		color: #ddf;
	}
	
	textarea{width: 100%;
		height: 90%;
		border: none;
	}
	</style>
<script type="text/javascript">

    function read(files) { //read files
        var i = files.length,
            reader = new FileReader();

        reader.onload = function () {
            example(reader.result);
        };

        reader.readAsText(files[--i]);
    }

    function arrayFromCSV(csv) {
        var lines = csv.split(/[\r\n]+/), i = lines.length, //split on strings
            array = new Array(); // create an array

        lines.forEach(function (el, i, lines) {
            if (i > 0) {
                array.push(el.split(',')); //split by commas, and fill an array 
            };
        });
    
        return array;
    }

    function arrayToCSV(array) {
        var csv = '';
        
        for (var i = 0, l = array.length; i < l; i++) {
            csv += (array[i] && array[i].join(',') || '') + '\r\n';
        };
        return csv;
    }


    function id(i) {
        return document.getElementById(i);
    }


    function example(csv) {
        var table = arrayFromCSV(csv),
            text = id('textarea');


        text.value = arrayToCSV(table);

    function Dublicates(array) {
            var dubl = [];

            for (var i = 0, l = array.length - 1; i < l; i++) {
                for (var j = i + 1;  j < array.length; j++) {
                    if (array[i][0] == array[j][0] && array[j] != 'marker') { // search for the same account numbers

                        dubl = array.splice(j, 1);

                    };
                    
                };
            };


            return dubl;          
        }

        text.value += '===== Noted Dublicates Account Numbers =====\n' + arrayToCSV(Dublicates(table));
Ответить с цитированием
  #16 (permalink)  
Старый 29.05.2013, 15:36
Аватар для Paulyyy
Интересующийся
Отправить личное сообщение для Paulyyy Посмотреть профиль Найти все сообщения от Paulyyy
 
Регистрация: 01.05.2013
Сообщений: 21

Все, нашла решение . Так что всем спасибо)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как удалить класс всех дочерних элементов? Jeremen Events/DOM/Window 8 01.09.2012 20:43
Упорядочить заданный числовой массив X (M) в порядке убывания значений его элементов. Drimmer Серверные языки и технологии 0 02.07.2012 18:22
как найти и удалить массив из массива? FRIE Общие вопросы Javascript 8 14.03.2011 15:48
Подскажите, как вернуть js-скрипт массив Polkan AJAX и COMET 18 30.04.2010 23:30
Как удалить массив? SunYang Общие вопросы Javascript 14 05.02.2010 14:31