다른 학교 성적으로 배열이 있습니다. 이 데이터는 json 파일에서 수집됩니다. 이 배열에는 0 점의 성적도 있습니다.이 과정을 수료하지 않은 학생의 성적입니다. 배열에서 0을 모두 제거하려고하지만 시작하는 방법을 모릅니다. 어레이배열에서 특정 값을 제거하십시오.
예 :
var grades = [7,6,4,0,4,8,9,6,6,10,0,7,8,6,7]
추신 나는 당신이 Array.filter
을 시도 할 수 D3
다른 학교 성적으로 배열이 있습니다. 이 데이터는 json 파일에서 수집됩니다. 이 배열에는 0 점의 성적도 있습니다.이 과정을 수료하지 않은 학생의 성적입니다. 배열에서 0을 모두 제거하려고하지만 시작하는 방법을 모릅니다. 어레이배열에서 특정 값을 제거하십시오.
예 :
var grades = [7,6,4,0,4,8,9,6,6,10,0,7,8,6,7]
추신 나는 당신이 Array.filter
을 시도 할 수 D3
을 사용하고 있습니다 :
var nonzero = grades.filter(function(v) {
return v !== 0;
});
commenteers가 제대로 언급 한 바와 같이, .filter
모든 브라우저에서 소용이 없습니다. 당신은 MDN에서 사용할 수있는 심 (shim)을 사용할 수 있습니다 (위의 링크를 참조), 또는 이런 식으로 코드를 다시 쓰기 : 코드의
var i=0, len = grades.length, nonzero = [];
for(;i<len;i++) {
grades[i] !== 0 && nonzero.push(grades[i]);
}
이것은 자바 스크립트 1.6의 일부이며 100 % 지원되지 않을 수도 있음을 경고해야합니다. – MushinNoShin
이 작품은 나를 위해. 고맙습니다! – timG
아니 가장 우아한 조각 만 작동합니다.
var grades = [7,6,4,0,4,8,9,6,6,10,0,7,8,6,7],
newGrades = [],
grade;
while (grades.length) {
grade = grades.pop();
if (grade != 0)
newGrades.push(grade);
}
grades = newGrades;
원시하지만 여전히 작동합니다
var grades = [7,6,4,0,4,8,9,6,6,10,0,7,8,6,7];
var j=0;
var newgrades=[];
for (var i=0; i < grades.length; i++) {
if (grades[i]) {
newgrades[j++] = grades[i];
}
}
성적 =의 newgrades는;
시도 .splice()
방법
var grades = [7, 6, 4, 0, 4, 8, 9, 6, 6, 10, 0, 7, 8, 6, 7];
while (true) {
var index = grades.indexOf(0);
console.log(index);
if (index > 0) {
grades.splice(index, 1);
}
else {
break;
}
}
console.log(grades);
for(var i=0; i<=grades.length; i++){
if(grades[i]==0){
grades.splice(i,1);
i--;
}
}
는 ([구글에서 검색] 해봤 https://www.google.com/search?oq=remove+zeros+ + array + javascript에서)? – Xymostech
Ofcourse하지만 아무것도 찾을 수 없습니다. 또한 저는 d3에 처음 왔습니다. – timG