从数组中删除特定值

tim*_*imG 0 javascript d3.js

我得到了一个不同学校成绩的阵列.此数据从json文件中收集.在这个数组中,也有0的成绩.这些是未完成课程的学生的成绩.我想删除数组中的所有0,但我不知道如何开始.

数组的例子:

var grades = [7,6,4,0,4,8,9,6,6,10,0,7,8,6,7]
Run Code Online (Sandbox Code Playgroud)

ps我正在使用d3

Dav*_*ing 5

你可以尝试Array.filter:

var nonzero = grades.filter(function(v) {
    return v !== 0;
});
Run Code Online (Sandbox Code Playgroud)

正如评论者所正确指出的那样,.filter在所有浏览器中都无济于事.您可以使用MDN上提供的填充程序(请参阅上面的链接),或者将代码重写为以下内容:

var i=0, len = grades.length, nonzero = [];
for(;i<len;i++) {
    grades[i] !== 0 && nonzero.push(grades[i]);
}
Run Code Online (Sandbox Code Playgroud)

  • 应该警告这是javascript 1.6的一部分,可能不是100%支持. (2认同)