Questions tagged «javascript»

有关在ECMAScript(JavaScript / JS)及其各种方言/实现(不包括ActionScript)中进行编程的问题。此标记很少单独使用,但最常与标记[node.js],[jquery],[json]和[html]关联。

22
排序对象属性和JSON.stringify
我的应用程序具有大量对象,我将它们进行字符串化并将其保存到磁盘。不幸的是,当数组中的对象被操纵并且有时被替换时,对象上的属性以不同的顺序列出(它们的创建顺序?)。当我在数组上执行JSON.stringify()并将其保存时,一个diff显示以不同顺序列出的属性,当尝试使用diff和合并工具进一步合并数据时,这很烦人。 理想情况下,我想在执行字符串化之前或作为字符串化操作的一部分,按字母顺序对对象的属性进行排序。有许多代码可以在许多地方操纵数组对象,而更改它们以始终以显式顺序创建属性将很困难。 建议将是最欢迎的! 一个简洁的例子: obj = {}; obj.name="X"; obj.os="linux"; JSON.stringify(obj); obj = {}; obj.os="linux"; obj.name="X"; JSON.stringify(obj); 这两个string化调用的输出是不同的,并显示在我的数据中,但是我的应用程序并不关心属性的顺序。这些对象以多种方式和位置构造。
94 javascript  json 

3
如何在Node.js中追加到换行符
我正在尝试使用Node.js将数据追加到日志文件中,并且工作正常,但不会转到下一行。 \n似乎在下面的功能中不起作用。有什么建议? function processInput ( text ) { fs.open('H://log.txt', 'a', 666, function( e, id ) { fs.write( id, text + "\n", null, 'utf8', function(){ fs.close(id, function(){ console.log('file is updated'); }); }); }); }

11
Moment JS给定月份的开始和结束
我需要给定year = 2014和month = 9(2014年9月)来计算JS日期。 我尝试了这个: var moment = require('moment'); var startDate = moment( year+'-'+month+'-'+01 + ' 00:00:00' ); var endDate = startDate.endOf('month'); console.log(startDate.toDate()); console.log(endDate.toDate()); 这两个日志都显示: Tue Sep 30 2014 23:59:59 GMT+0200 (CEST) Tue Sep 30 2014 23:59:59 GMT+0200 (CEST) 结束日期正确,但是...为什么开始日期不正确?

11
在DOM对象上设置属性时如何避免无参数重新分配
我有一个主要目的是在DOM对象上设置属性的方法 function (el) { el.expando = {}; } 我使用AirBnB的代码风格,这使ESLint抛出no-param-reassign错误: 错误分配给功能参数“ el”的无参数重新分配 在符合AirBnB的代码风格的同时,如何操作作为参数传递的DOM对象? 有人建议用/* eslint react/prop-types: 0 */指的是另一个问题,但如果我没有弄错的适用以及为反应,而不是原生DOM操作。 我也不认为更改代码样式是解决方案。我相信使用标准样式的好处之一是跨项目具有一致的代码,并且随意更改规则感觉就像滥用AirBnB这样的主要代码样式一样。 作为记录,我在GitHub上问了AirBnB,他们认为在这些有争议的案例#766中该怎么办。
94 javascript  dom  eslint 

3
正则表达式/ _ / g是什么意思?
JavaScript: .replace(/_/g," "); 我在我的代码中有它,但是不记得它为什么或做什么!你们其中一位正则表达式专家可以提供帮助吗? 我知道这似乎很基本,但是正则表达式不是我的最佳选择,而谷歌搜索/g并没有太大帮助。
94 javascript  regex 


5
使用Chrome开发者工具编辑Javascript
我正在尝试使用Chrome的开发人员工具在网站上编辑javascript。我已经阅读了大约30个有关如何执行此操作的信息,并观看了一些视频。事实是,当我转到“源”选项卡并打开要编辑的文件时,我无法对其进行任何操作。我缺少一些步骤吗? 我可以创建断点,逐步执行等...我只是无法编辑。该功能最近被删除了吗?

5
React js从父组件更改子组件的状态
我有两个组件: 父组件,我想从中更改子组件的状态: class ParentComponent extends Component { toggleChildMenu() { ????????? } render() { return ( <div> <button onClick={toggleChildMenu.bind(this)}> Toggle Menu from Parent </button> <ChildComponent /> </div> ); } } 和子组件: class ChildComponent extends Component { constructor(props) { super(props); this.state = { open: false; } } toggleMenu() { this.setState({ open: !this.state.open …

2
JavaScript:空数组,[]在条件结构中评估为true。为什么是这样?
我在代码中遇到了很多错误,因为我期望这样的表达式: Boolean([]); 评估为假。 但是事实并非如此,因为它评估为true。 因此,可能返回的函数[]如下所示: // Where myCollection possibly returned [ obj1, obj2, obj3] or [] if(myCollection) { // ... }else { // ... } 没有做预期的事情。 我是否以为[]空数组是错误的? 此外,此行为在所有浏览器中是否一致?还是那里也有陷阱?顺便说一下,我在Goolgle Chrome中观察到了这种行为。


5
执行回调函数时,Angular2组件的“ this”未定义
我有一个组件,该组件调用服务以从RESTful端点获取数据。需要给该服务一个回调函数,以在获取所述数据后执行。 问题是,当我尝试使用回调函数将数据追加到组件变量中的现有数据时,得到一个EXCEPTION: TypeError: Cannot read property 'messages' of undefined。为什么this未定义? TypeScript版本:版本1.8.10 控制器代码: import {Component} from '@angular/core' import {ApiService} from '...' @Component({ ... }) export class MainComponent { private messages: Array<any>; constructor(private apiService: ApiService){} getMessages(){ this.apiService.getMessages(gotMessages); } gotMessages(messagesFromApi){ messagesFromApi.forEach((m) => { this.messages.push(m) // EXCEPTION: TypeError: Cannot read property 'messages' of undefined }) …

6
HTMLCollection,NodeList和对象数组之间的区别
对于DOM,我一直对HTMLCollections,对象和数组感到困惑。例如... document.getElementsByTagName("td")和之间有什么区别$("td")? $("#myTable")和$("td")是对象(jQuery的对象)。为什么console.log还会在它们旁边显示DOM元素的数组,而它们不是对象也不是数组? 什么是难以捉摸的“ NodeLists”,以及如何选择一个? 还请提供以下脚本的任何解释。 谢谢 [123,"abc",321,"cba"]=[123,"abc",321,"cba"] {123:123,abc:"abc",321:321,cba:"cba"}=Object { 123=123, abc="abc", 321=321, more...} Node= Node { ELEMENT_NODE=1, ATTRIBUTE_NODE=2, TEXT_NODE=3, more...} document.links= HTMLCollection[a #, a #] document.getElementById("myTable")= <table id="myTable"> document.getElementsByClassName("myRow")= HTMLCollection[tr.myRow, tr.myRow] document.getElementsByTagName("td")= HTMLCollection[td, td, td, td] $("#myTable")= Object[table#myTable] $("td")= Object[td, td, td, td] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 …
94 javascript  jquery  dom 

9
Javascript的sort()如何工作?
以下代码如何将该数组按数字顺序排序? var array=[25, 8, 7, 41] array.sort(function(a,b){ return a - b }) 我知道如果计算结果是... 小于0:“ a”被排序为比“ b”低的索引。 零: “ a”和“ b”被视为相等,并且不执行排序。 大于0: “ b”被排序为比“ a”低的索引。 在排序过程中是否多次调用了数组排序回调函数? 如果是这样,我想知道每次将两个数字传递给函数。我假设它首先使用“ 25”(a)和“ 8”(b),然后是“ 7”(a)和“ 41”(b),所以: 25(a)-8(b)= 17(大于零,因此将“ b”排序为比“ a”低的索引):8、25 7(a)-41(b)= -34(小于零,因此将“ a”排序为比“ b”低的索引:7、41 然后如何将两组数字彼此相对排序? 请帮助陷入困境的新手!


7
检测html表单是否被编辑的通用方法
我有一个选项卡式的html表单。从一个选项卡导航到另一个选项卡时,即使数据没有更改,当前选项卡的数据也会保留(在数据库中)。 我只想在表单被编辑的情况下进行持久化调用。该表格可以包含任何控件。污损表单不必通过键入一些文本来完成,但是在日历控件中选择日期也可以。 实现此目的的一种方法是默认情况下以只读模式显示表单并具有“编辑”按钮,如果用户单击“编辑”按钮,则会进行对DB的调用(再次,无论是否修改数据) (这是对现有内容的更好的改进)。 我想知道如何编写一个通用的javascript函数来检查是否有任何控件值已被修改?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.