2016-02-17 4 views
-2

Я новичок в angularjs.Сравнить и разделить строку с помощью angularjs

Мне нужно сравнить две строки и напечатать общие слова из обеих строк с помощью углового.

Мой angularjs код:

var app = angular.module('myApp', []); 
app.controller('myCtrl', function($scope) { 
    $scope.names = [ 
    {name1: 'aaaa',name2: 'aaaa'}, 
    {name1: 'abc',name2: 'abcde'}, 
    {name1: 'aabbcc',name2: 'aabbdd'} 
    ]; 
}); 

HTML:

<table> 
    <tr ng-repeat="x in names "> 
     <td>{{x.name1}}</td> 
     <td>{{x.name2}}</td> 
     <td ng-if='x.name1 == x.name2'>{{x.name1}}</td> 
     <td ng-if='x.name1 != x.name2'><!--Output--></td> 
    </tr> 
</table> 

ожидается выход:

name1 name2 output 
aaaa aaaa aaaa 
abc  abcde abc 
aabbcc aabbdd aabb 

Я использовал нг-если для первого набора. Тогда что делать для оставшегося набора значений? Возможно ли это, используя только угловые?

+0

вы по крайней мере должны написать логика для сравнения подстроки или содержит или что-то в этом роде ... у текущего кода еще нет ни одного – gaurav5430

+2

. Вы должны повторно пометить свой вопрос. Это не имеет никакого отношения к угловому. Это чистый JavaScript и даже алгоритмический вопрос. Вы также должны обеспечить лучшую спецификацию «общий». Вы ищете общих персонажей в одной и той же позиции? и т. д. –

+0

Не попадайте в ловушку, думая, что только потому, что вы используете фреймворк, что каждый бит вашего кода должен его использовать. JavaScript построил методы разделения строк. –

ответ

0

Взгляните на этот Vanilla код: расслоение плотной

function getIntersection(s1, s2) { 
    var result = '', i, map = {}; 

    for (i = 0; i < s1.length; i++) 
    map[s1[i]] = (map[s1[i]] || 0) + 1; 

    for (i = 0; i < s2.length; i++) 
    map[s2[i]] = (map[s2[i]] || 0) + 1; 

    for (var key in map) 
    if (map[key] > 1) 
     result += key; 

    return result; 
} 

Я интегрирован это в угловатый, usnig в пользовательский фильтр:

https://jsfiddle.net/ronapelbaum/b95y5m46/

+0

Спасибо за предложение .. – CMY

Смежные вопросы