Javascript js产品列表未获取.length

Javascript js产品列表未获取.length,javascript,jquery,arrays,Javascript,Jquery,Arrays,因此,使用JS创建“产品” <script type="text/javascript" language="javascript"> var products = [ @{ bool addComma = false; foreach (UMACS.Bradmount.Models.QBProductRecord product in Model.AllP

因此,使用JS创建“产品”

<script type="text/javascript" language="javascript">
                    var products = [
                    @{
            bool addComma = false;
            foreach (UMACS.Bradmount.Models.QBProductRecord product in Model.AllProducts)
            {
                if (addComma)
                {
                                <text> @Html.Raw(",") </text>
                }

                            <text> @Html.Raw(string.Format("{{ value: \"{0} ({1})\", label: \"{0} ({1})\", desc: \"{1}\", prodid: \"{2}\" }}", product.ProductCode.Stripped(), product.ProductName.Stripped(), product.Id)) </text>

                addComma = true;
            }
                    }
                    ];
后来我想说

self.selectedProductId = ko.computed(function() {
                        for (var i = 0; i < products.length; i++) {
                            if (products[i].label == self.selectedProduct()) {
                                return products[i].prodid;
                            }
                        }       
                        return "0";

在哪里products.length是指产品不存在?关于原因有什么想法吗?

JS列表应该看起来像var list=[[A,b],[c,d],[e,f];有[]而不是{}

列表长度为3


所以在列表[0]中,长度为2

您的产品列表包含Javascript和HTML吗?似乎。疯狂。如果产品是一个对象,它没有长度属性。如果产品如您所说定义,那么它有长度属性。我的猜测是这个问题还有很多,听起来问题不是产品没有长度属性,而是产品不存在。您得到的实际错误是什么?您稍后所说的是什么意思?您的产品阵列的粘贴示例被注释掉的具体原因是什么?标签做什么?OP在方括号中围绕着products数组,@{}是一个服务器端标签,我猜是ASP
self.selectedProductId = ko.computed(function() {
                        for (var i = 0; i < products.length; i++) {
                            if (products[i].label == self.selectedProduct()) {
                                return products[i].prodid;
                            }
                        }       
                        return "0";