0

私はこの配列を持っています

var bmpArrayNames=["strip_cropping", "crop_rotation", "cover_crops", "filter_strips", "grassed_waterway", "conservation_tillage", "binary_wetlands"];

そしてこの配列

var bmpArray=["1", "1", "0", "0", "0", "0", "0"];

このbmpArrayをループして、値が=1かどうかを確認する必要があります。もしそうなら、私は値をbmpArrayNamesの同じインデックスの値に置き換えたいと思います。次に、最終的にbmpArray = ["strip_cropping、"crop_rotation"]で終わるすべての「0」を削除します。

私はこれから始めましたが、立ち往生していません

$.each(bmpArray, function(index, value) { 
if (value=="1")
//so if i find a match how do I replace with the same indexed value in the other array.

前もって感謝します!

4

3 に答える 3

2

試す:

$.each(bmpArray, function(index, value) {
    if (value == "1") {
        bmpArray[index] = bmpArrayNames[index];
    }
});

$.grep(bmpArray, function(item, index) {
    return bmpArray[index] != "0";
});

入力:

var bmpArrayNames = ["strip_cropping", 
                     "crop_rotation", 
                     "cover_crops",
                     "filter_strips", 
                     "grassed_waterway", 
                     "conservation_tillage", 
                     "binary_wetlands"];

var bmpArray = ["1", "1", "0", "0", "0", "0", "0"];

出力:

bmpArray : ["strip_cropping", "crop_rotation"];
于 2012-09-20T14:41:29.887 に答える
2

これにより、bmpArray が更新されます。

$.each(bmpArray, function(index, value) { 
    if (value==="1"){
        bmpArray[index] = bmpArrayNames[index];
    }
});

意図しない型の強制を防ぐために、トリプル イコール演算子の使用が推奨されることに注意してください。

ゼロを削除するには、次のgrepように関数を使用できます。

bmpArray = $.grep(bmpArray, function(item){
    return item !== "0";
});
于 2012-09-20T14:42:26.100 に答える
2

あなたが望むなら:

["strip_cropping", "crop_rotation"]

最終結果として、jQuery .grep メソッドを使用できます。

var bmpArrayNames = ["strip_cropping", "crop_rotation", "cover_crops", "filter_strips", "grassed_waterway", "conservation_tillage", "binary_wetlands"];
var bmpArray = ["1", "1", "0", "0", "0", "0", "0"];

bmpArrayNames = jQuery.grep( bmpArrayNames, function(item, index) {
    return bmpArray[index] == "1";
});

bmpArrayNames今は["strip_cropping", "crop_rotation"]

于 2012-09-20T14:51:19.957 に答える