Tag: 数组

undefined不是ejs中的函数

当我试图潜入js世界时,它是我第一次遇到和学习ejs的尝试。 现在我的问题是我得到以下错误: for(i in data.result){ 22| var intime = data.result[i].intime; undefined is not a function 和相关的代码如下所示: <table > <thead> <th>Project Name</th><th>Date</th><th>Login</th><th>Logout</th><th>Time Spend</th> </thead> <% var fraction = 1000 * 60 * 60; for(i in data.result){ var intime = data.result[i].intime; var outtime = data.result[i].outtime; var difftime = ((outtime.getTime() – intime.getTime()) / fraction); var date = data.result[i].date; […]

mongoosefindOne范围怀疑

我是新来的这个JavaScript的东西,我有一些关于mongoose'发现'范围的怀疑。 我写了下面的代码来试图理解这个问题。 下面的代码search购物集合,然后search分配给此购物的商店。 storeMap是storeId => storeObject的散列表,但是当Store.findOne范围结束时,storeMap似乎回滚到一个空的数组… var storeMap = {}; Shopping.findOne({ name: shoppingName }, function(err, shopping){ shopping.stores.forEach(function(storeId) { Store.findOne({_id: storeId}, function(err, store) { if(err) console.log(err); console.log(store); //prints out store data storeMap[storeId] = store; console.log(storeMap); //prints out store data }); console.log(storeMap); //prints out an empty array }); }); 那么,为什么我的storeMap数组正在打印一个空数组而不是一个存储数组?

在将日志logging到数组中的控制台之前,检查URL是否存在

我正在编写一个用于生成站点地图的节点应用程序,并且遇到了我需要的特定部分的问题(i)通过包含具有特定URL键的许多产品的JSON页面循环,并检查这些产品中是否存在这些URL (ii)如果URL存在,则需要将该URL打印到控制台。 var request = require("request"); var url = "http://linktoJSON" //reads the JSON from the provided URL request({ url: url, json: true }, function (error, response, body) { //loops through each product on the page for (i = 0; i < body.length; i++) { //checks if the URL exists for each product request('http://www.example.com/product/' + (body[i].urlKey), […]

如何使用Sequelize.js和PostgreSQLvalidation数组字段的数组input?

我使用Node.js + PostgreSQL + Sequelize.js 2.0.2 。 我有以下模式定义的电话字段可能是string数组,但只允许数字: var User = sequelize.define("User", { …. …. /** Phone number * Multiple numbers should be registered due to */ phone: { type: Sequelize.ARRAY(Sequelize.STRING), allowNull: false, unique: true, validate: { isNumeric: true } }, …. …. }); 数字电话号码数组未通过validation。 input : [ '9252522525', '9252525555' ] 错误 : { [SequelizeValidationError: […]

Array.push()在重复的对象中,不正确或难以理解

我发现一个问题/不良行为Array.push() 。 我不知道如果我做错了什么或如果.push()方法不正确。 我将介绍一个我正在处理的事例 var x = []; function test() { var y = x; for(var i = 1; i<10; i++) { y.push(i); } alert("x = " + x); } alert("x = " + x); test(); //result: //1'st alert: x = //2'rd alert: x = 1,2,3,4,5,6,7,8,9 所以我的例子与我的项目中的真实问题是无法比拟的,我修正了这个问题:添加方法参数(x作为参数不与全局作用域共享)或克隆对象的情况。 问题 : 为什么在用y初始化y时执行推送时推送x ? 这个例子发生在跨浏览器,我想知道如果node.js做同样惊喜,现在的问题:我使用错误的.push()方法? 什么是从现有的对象初始化正确的方法。 也许我的问题是愚蠢的,但我找不到文件解释。 谢谢。

尝试从计算创build数组时无效的数组长度

var map = { mapSize: 100, // the size of a side data: new Array(this.mapSize * this.mapSize), getIndex: function(x, y) { return x * this.mapSize + y; }, getCoords: function(index) { var x = Math.floor(index/this.mapSize); return { x: x, y: index – (x * this.mapSize) } } }; 这段代码给了我RangeError:无效的数组长度。 但是,当没有计算,像这样: data: new Array(this.mapSize), 有用。 你能解释一下为什么会这样吗?

sails.js水线保存,读取,分析列表或数组

在Sails Waterline中创build,阅读和分析列表的正确方法是什么? 我一直无法find堆栈溢出或水线Github上的任何东西。 准确地说,我想保存一个想法模型中的标签列表,然后能够通过标签进行search。 理念模式: attributes: { tags: { type: 'string' } } 创build函数(标记以逗号分隔的string传递) create: function (req, res, next) { tags: req.param('tags').split(','); Idea.create(tags, function ideaCreate(err,idea) { //do stuff after create }); }, 这成功地存储标签:即标签= ['tag1','tag2',…,'tagN'] 我已经尝试过.find 。的时髦组合,但无济于事。 简易版本:我如何返回有一些用户请求tagX 更难的版本:如何返回任何有一个标签列表中至less有一个标签的想法?

从服务器导致ajax成功callback函数奇怪的追加行为的数组?

//FIRST ARRAY OF DATA FROM SERVER: arrayOne = A:1,B:2,C:3. //SECOND ARRAY OF DATA FROM SERVER: arrayOne = A:4,B:5,C:6. //ajax success call back: function (data) { var i = data.arrayOne.length – 1; var Parent = $('<div>',{'class':'parent'}).appendTo('body'); var A = $('<h1>',{'class':'columns a','text':data.arrayOne[i].A}).appendTo('.parent'); var B = $('<h1>',{'class':'columns b','text':data.arrayOne[i].B}).appendTo('.parent'); var C = $('<h1>',{'class':'columns c','text':data.arrayOne[i].C}).appendTo('.parent'); } //FIRST CALLBACK RETURNS: "123" […]

给定一个JSON对象数组,我怎样才能得到基于嵌套值的JSON对象?

我正在使用谷歌地图geocoding API获取以下JSON对象,基于一个地址: { "results":[ { "address_components":[ { "long_name":"643", "short_name":"643", "types":[ "subpremise" ] }, { "long_name":"900", "short_name":"900", "types":[ "street_number" ] }, { "long_name":"Folsom Street", "short_name":"Folsom St", "types":[ "route" ] }, { "long_name":"South of Market", "short_name":"South of Market", "types":[ "neighborhood", "political" ] }, { "long_name":"San Francisco", "short_name":"SF", "types":[ "locality", "political" ] }, { "long_name":"San Francisco County", "short_name":"San […]

内存高效的方法来复制一个数组

所以基本上我试图find一个内存有效的方法来复制一个数组。 假设我们有arr1 ,其中包含500000个true值元素: var arr1 = []; for (var i = 0; i < 500000; i++) { arr1[i] = true; } 在Node.js中,占用大约32.3 MiB(包括节点启动时的18.7 MiB)。 现在,很明显,当你引用arr1 ,将不分配内存: var arr2 = arr1; 现在,当我执行一个arr1到arr2的副本: var arr2 = arr1.concat(); 这个过程占用36.2 MiB,所以大约4 MiB。 这里是:不pipe我做什么来清空或擦除原始数组,分配给该数组的内存都不会被垃圾收集器释放或拾取。 假设我有: arr1.length = 0; delete arr1; arr1 = undefined; arr1 = arr2.concat(); 多亏了这一点,这个过程现在占据了39.8 MiB。 那么这里究竟发生了什么? 是否有一些秘密引用原始数组的节点(或任何JS引擎)试图隐藏我? […]