마찬가지로 배열이 있습니다 배열 ('one', 'three', 'two');, 그리고 예를 들어 항목 3을 삭제하고 싶습니다. 어떻게 처리합니까?항목의 이름으로 배열에서 항목을 삭제하려면 어떻게해야합니까?
이같이 IndexOf 방법은 IE에서 자바 스크립트 배열 오브젝트의 일부가 아닌 (도 일부가 아닌 : 같이 IndexOf를 지원하지 않는 브라우저를위한
마찬가지로 배열이 있습니다 배열 ('one', 'three', 'two');, 그리고 예를 들어 항목 3을 삭제하고 싶습니다. 어떻게 처리합니까?항목의 이름으로 배열에서 항목을 삭제하려면 어떻게해야합니까?
이같이 IndexOf 방법은 IE에서 자바 스크립트 배열 오브젝트의 일부가 아닌 (도 일부가 아닌 : 같이 IndexOf를 지원하지 않는 브라우저를위한
var a = ['one', 'three', 'two'];
a.splice(a.indexOf('three'), 1);
alert(a);
https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Objects/Array/IndexOf#Compatibility
function RemoveArrayValue(arr, val)
{
var result = [], //empty array
j = 0, i, len = arr.length;
for(i = 0; i < len; ++i)
if(arr[i] != val)
result[j++] = val;
return result;
}
BTW 해결 방법에게있다 IE8의)하지만, 문자열 개체입니다. indexOf 메서드를 JS Array 객체에 포함 시키려면 코드에 다음을 선언해야합니다.
if (!Array.prototype.indexOf)
{
Array.prototype.indexOf = function(val)
{
for(var i = 0, len = this.length; i < len; ++i)
if(this[i] === val)
return i;
return -1;
}
}
'indexOf'는'Array.prototype'의 일부입니다 만, 모든 브라우저 (IE가 부족합니다)에 의해 구현되지 않았습니다.이 메소드는 ECMAScript 3rd Ed의 일부입니다. 표준이며, 네이티브 구현이 번개가 빠르기 때문에 네이티브'Array.prototype.indexOf'가 오버라이드되기 전에 존재하는지 검사해야합니다. – CMS
맞다! 감사합니다 4 코멘트. 위의 코드를 u가 제안한대로 업데이트했습니다. :) –
또한 'splice'에 대한 args가 엉망입니다. 다른 방법으로 : a.splice (a.indexOf ('three'), 1);'https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Objects/Array/Splice를 참조하십시오 –
arg 명령. –