Chcę podzielić wartość tablicy.

Na przykład

gUser[1] = CAR.BENZ.CCLASS.1962

gUser[2] = CAR.PORSCHE.911.2001

Chcę uzyskać tylko łańcuch BENZ.CLASS.1962 i PORSCHE.911.2001

Jak podzielić wartość tablicy w JavaScript?

@aktualizacja.

Nie zawsze CAR ciąg. Więc nie używaj podciągu.

0
hyunwooks 5 lipiec 2017, 08:42

8 odpowiedzi

Najlepsza odpowiedź

Możesz użyć mapy, aby uzyskać dostęp do każdego ciągu w tablicy, a następnie użyj Wymień. Użyj regexa, aby dopasować ciąg przed ". i zastąp tylko pierwszy mecz, taki jak:

  var gUser = ['CAR.BENZ.CCLASS.1962', 'CAR.PORSCHE.911.2001'];

  var gUserModified = gUser.map(function(v){
        return v.replace(/[^\.]+\./, '');
  });
  console.log(gUserModified);
2
Dij 5 lipiec 2017, 06:17

Coś takiego

`for(let index = 0; index < gUser.length; index++) {
    console.log(gUser[index].split('.').splice(0, 1).join('.'));
}`

Nie testowałem tego. proszę sprawdź i daj mi znać

0
Vishnu 5 lipiec 2017, 09:09

Łatwiejsze podział następnie przesuń tablicę, aby usunąć pierwszy przedmiot taki jak:

gUser = ["CAR.BENZ.CCLASS.1962"];
var benz = gUser[0].split(".");
benz.shift();
alert(benz.join('.'));

Istnieją inne opcje od przesunięcia, takie jak plasterek (1), ale pod względem wydajności, zmiana jest najwyraźniej szybsza https://jsperf.com/shift-pop-vs-slice/4.

0
Qiqo 5 lipiec 2017, 06:00

Oto sposób bez użycia dowolnego regex, tylko przy użyciu ciągów ciągowych i tablicy.

const gUser = ['CAR.BENZ.CCLASS.1962', 'CAR.PORSCHE.911.2001', 'XYZAB.PORSCHE.YSA.2021']

for (let i = 0; i < gUser.length; i++) {
  console.log('Required String: ', gUser[i].split('.').slice(1).join('.'));
}

To, co robimy, dzielimy ciąg na części, w których napotkano ..

gUser[0].split('.') zwraca {x1}}

Później, kiedy nazywa się slice(1), element zeroth macierzystych jest wyłączany i powróci ['BENZ', 'CCLASS', '1962']

I wreszcie przy użyciu join('.'), scalamy elementy tablicy do jednego ciągu za pomocą . między każdym elementem, który zwraca BENZ.CCLASS.1962


Mam nadzieję że to pomoże! :)

0
bharadhwaj 5 lipiec 2017, 05:59
var gUser = [];
gUser[1] = "CAR.BENZ.CCLASS.1962";
var gu1 = gUser[1].split(".");
gu1.shift();
console.log(gu1.join("."));
0
lkdhruw 5 lipiec 2017, 05:53

Poniższy kod nie jest testowany, ale prawdopodobnie powinien pracować, a może drobne poprawki

var splitStr = ''
var correctCarArr = []
for(let i = 0; i < gUser.length; i++){
  splitStr = gUser[i].split('.')
  let temp = ''
  for(let j = 1; j < splitStr.length; j++){
    temp += splitStr[j]
  }
  correctCarArr.push(temp)
}
0
Vignesh S 5 lipiec 2017, 05:52

Z twojego pytania nie jest jasne, jeśli tablica jest tablicą łańcuchową

Jeśli jest to tablica łańcuchowa, którą możesz zrobić:

ES6 +: gUser.map((user)=>{return user.split("CAR.")[1]})

ES5: gUser.map(function(user){return user.split("CAR.")[1]});

0
Alex 5 lipiec 2017, 05:50

Podziel go kropką, a następnie pokroić go i dołącz do niego kropką

var gUser =[];
gUser[1] = "CAR.BENZ.CCLASS.1962";

gUser[2] = "CAR.PORSCHE.911.2001";

console.log(gUser[1].split('.').slice(1).join('.'));
console.log(gUser[2].split('.').slice(1).join('.'));
1
Dinesh undefined 5 lipiec 2017, 05:54