0

我在翡翠中有 2 个数组,长度大小不同

 // jsCategory length 6
    var jsCategory = array1 
   // jsCategory length 3
   var jsMy = array2

   var html_option = '';

   for (var i = 0; i < jsCategory.length; i++) {

    for (var z = 0; z < jsMy.length; z++) {
     if (jsCategory[i]._id == jsMy[z]._id) {
            //Correct
            html_option += '<option value=' + jsCategory[i]._id + ' selected>' + jsCategory[i].name + '</option>';
        } else {
            //Not Select err
            console.log(jsCategory[i]);
        }
    }
}

document.write(html_option);
4

1 回答 1

0

使用 filter 和 reduce 更短

const findById = inWhere => ({ _id }) => !!inWhere.find(t => t._id === _id)

const html_option = array1
   .filter(findById(array2))
   .reduce((html, ({_id, name}) => 
        html += `<option value=${_id} selected>${name}</option>`, ''))
于 2019-03-28T04:19:41.130 回答