如何解决JavaScript .length属性给出错误的值
我有这个程序,我在一个新声明的数组arr中添加值。但是,当我尝试使用document.getElementById('btnFndCntnt').addEventListener('click',function (e) {
newrelic.addPageAction('Find');
})
时,它给了我console.log(arr.length)
的值,而不是1
(期望值)。谁能解释为什么会这样?
10
这是渲染函数:
httpRes.done(function (res) {
if (httpRes.status == 201) {
$('#salary_detail').empty();
$('#salaryModal').removeClass('disabled').attr('data-toggle','modal');
}
else {
var arr = [render_detail(res)]
console.log(arr.length); // returns 1
if (arr.length < 16) {
$('#salaryModal').addClass('disabled').removeAttr('data-toggle');
}
else {
$('#salaryModal').removeClass('disabled').attr('data-toggle','modal');
};
$('#salary_detail').html(render(arr));
}
});
解决方法
您将数组包装在另一个数组中
var arr = [render_detail(res)]
不要那样做,直接将其分配:
var arr = render_detail(res);
,
将此与您实际提出的问题的答案分开,可以这样编写private void readMeditationDay() {
DocumentReference readOne = db.collection("Meditation")
.document(timeStamp);
readOne.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()){
DocumentSnapshot doc = task.getResult();
StringBuilder data = new StringBuilder("");
data.append("Status: ").append(doc.getString("Status"));
data.append("\nFeedback: ").append(doc.getString("Feedback"));
data.append("\nDuration (Minutes): ").append(doc.getString("Time"));
txtDisplay.setText(data.toString());
}
}
});
}
函数:
render_detail
这将返回一个 new 数组,其中每个元素都使用内部函数进行了转换。反过来,此功能依赖于数据中的重复模式在每个元素周围添加必要的包装。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。